Kanmon Users API

The Users API from Kanmon — 3 operation(s) for users.

OpenAPI Specification

kanmon-users-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  contact: {}
  description: Kanmon's public api. Contains all of the endpoints for both capital providers and platforms
  title: Kanmon Public V2 Bank Accounts Users API
  version: 2.0.0
servers:
- description: Production
  url: https://api.kanmon.com
- description: Sandbox
  url: https://api.kanmon.dev
- description: Local
  url: http://localhost:3333
- description: Staging
  url: https://workflow.concar.dev
tags:
- name: Users
paths:
  /api/platform/v2/users:
    get:
      operationId: getAllUsers
      parameters:
      - description: A comma delimited list of Kanmon’s unique IDs for users.
        example: 60eaa08c-f7a5-4f3a-860d-a16dde5771d6,70eaa08c-f7a5-4f3a-860d-a16dde5771e34
        explode: true
        in: query
        name: ids
        required: false
        schema:
          type: string
        style: form
      - description: A comma delimited list of your platform’s unique IDs for users.
        example: 12345,67890
        explode: true
        in: query
        name: platformUserIds
        required: false
        schema:
          type: string
        style: form
      - description: A comma delimited list of your platform’s unique business IDs for users.
        example: 12345,67890
        explode: true
        in: query
        name: platformBusinessIds
        required: false
        schema:
          type: string
        style: form
      - description: A comma delimited list of your Kanmon’s unique business IDs for users.
        example: d4824e09-7857-49cb-8dc1-3410d14a1621,361530c5-9180-4ec8-9287-44c5dc9d3686
        explode: true
        in: query
        name: businessIds
        required: false
        schema:
          type: string
        style: form
      - description: Whether to include secondary owners in results. Defaults to `false`.
        example: false
        explode: true
        in: query
        name: includeSecondaryOwners
        required: false
        schema:
          type: boolean
        style: form
      - description: The number of records to skip when performing pagination. Defaults to `0`.
        example: '0'
        explode: true
        in: query
        name: offset
        required: false
        schema:
          type: number
        style: form
      - description: The number of records to limit when performing pagination. Defaults to `100`, which is the max.
        example: '100'
        explode: true
        in: query
        name: limit
        required: false
        schema:
          type: number
        style: form
      - description: Filter for records where `createdAt` is greater than or equal to this value. ISO 8601 format.
        example: 2022-06-01 03:57:26.115000+00:00
        explode: true
        in: query
        name: createdAtStart
        required: false
        schema:
          type: string
        style: form
      - description: Filter for records where `createdAt` is less than or equal to this value. ISO 8601 format.
        example: 2022-06-01 03:57:26.115000+00:00
        explode: true
        in: query
        name: createdAtEnd
        required: false
        schema:
          type: string
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUsersResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestException'
          description: BadRequestException
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenException'
          description: ForbiddenException
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsException'
          description: TooManyRequestsException
          headers:
            X-RateLimit-Limit:
              description: Maximum number of requests allowed per minute.
              explode: false
              schema:
                type: integer
              style: simple
            X-RateLimit-Remaining:
              description: Number of remaining requests available.
              explode: false
              schema:
                type: integer
              style: simple
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorException'
          description: InternalServerErrorException
      security:
      - Authorization: []
      summary: Fetch users
      tags:
      - Users
      x-readme:
        code-samples:
        - language: node
          install: npm install @kanmon/sdk
          name: SDK
          code: "\nkanmonApi.users.getAllUsers({\n  ...params...\n})\n    "
      x-accepts:
      - application/json
    post:
      operationId: createUser
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUserRequestBody'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: User created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestException'
          description: BadRequestException
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenException'
          description: ForbiddenException
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessNotFoundException'
          description: BusinessNotFoundException
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/createUser_409_response'
          description: PrimaryBusinessOwnerAlreadyExistsForBusinessException, UserAlreadyExistsWithPlatformUserIdException, UserAlreadyExistsWithEmailException
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsException'
          description: TooManyRequestsException
          headers:
            X-RateLimit-Limit:
              description: Maximum number of requests allowed per minute.
              explode: false
              schema:
                type: integer
              style: simple
            X-RateLimit-Remaining:
              description: Number of remaining requests available.
              explode: false
              schema:
                type: integer
              style: simple
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorException'
          description: InternalServerErrorException
      security:
      - Authorization: []
      summary: Create a user
      tags:
      - Users
      x-readme:
        code-samples:
        - language: node
          install: npm install @kanmon/sdk
          name: SDK
          code: "\nkanmonApi.users.createUser({\n  ...params...\n})\n    "
      x-content-type: application/json
      x-accepts:
      - application/json
  /api/platform/v2/users/{id}:
    get:
      operationId: getUser
      parameters:
      - description: Either the Kanmon user UUID or your platform’s user ID, depending on `idType`.
        example: 60eaa08c-f7a5-4f3a-860d-a16dde5771d6
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - description: Which ID type to query the user by. Defaults to `KANMON`. Use `PLATFORM` if you want to query by your platform’s ID.
        example: KANMON
        explode: true
        in: query
        name: idType
        required: false
        schema:
          enum:
          - KANMON
          - PLATFORM
          type: string
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestException'
          description: BadRequestException
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenException'
          description: ForbiddenException
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserNotFoundException'
          description: UserNotFoundException
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsException'
          description: TooManyRequestsException
          headers:
            X-RateLimit-Limit:
              description: Maximum number of requests allowed per minute.
              explode: false
              schema:
                type: integer
              style: simple
            X-RateLimit-Remaining:
              description: Number of remaining requests available.
              explode: false
              schema:
                type: integer
              style: simple
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorException'
          description: InternalServerErrorException
      security:
      - Authorization: []
      summary: Fetch a user
      tags:
      - Users
      x-readme:
        code-samples:
        - language: node
          install: npm install @kanmon/sdk
          name: SDK
          code: "\nkanmonApi.users.getUser({\n  ...params...\n})\n    "
      x-accepts:
      - application/json
    patch:
      operationId: updateUser
      parameters:
      - description: Either the Kanmon user UUID or your platform’s user ID, depending on `idType`.
        example: 60eaa08c-f7a5-4f3a-860d-a16dde5771d6
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - description: Which ID type to query the user by. Defaults to `KANMON`. Use `PLATFORM` if you want to query by your platform’s ID.
        example: KANMON
        explode: true
        in: query
        name: idType
        required: false
        schema:
          enum:
          - KANMON
          - PLATFORM
          type: string
        style: form
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUserRequestBody'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestException'
          description: BadRequestException
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenException'
          description: ForbiddenException
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserNotFoundException'
          description: UserNotFoundException
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/updateUser_409_response'
          description: UserAlreadyExistsWithEmailException, PrimaryBusinessOwnerAlreadyExistsForBusinessException
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsException'
          description: TooManyRequestsException
          headers:
            X-RateLimit-Limit:
              description: Maximum number of requests allowed per minute.
              explode: false
              schema:
                type: integer
              style: simple
            X-RateLimit-Remaining:
              description: Number of remaining requests available.
              explode: false
              schema:
                type: integer
              style: simple
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorException'
          description: InternalServerErrorException
      security:
      - Authorization: []
      summary: Update a user
      tags:
      - Users
      x-readme:
        code-samples:
        - language: node
          install: npm install @kanmon/sdk
          name: SDK
          code: "\nkanmonApi.users.updateUser({\n  ...params...\n})\n    "
      x-content-type: application/json
      x-accepts:
      - application/json
  /api/platform/v2/users/merge:
    post:
      description: Users from the source business will be moved into the target business. This will only work if the source business has not started onboarding yet. After the merge, the source business will be deleted.
      operationId: mergeUserIntoBusiness
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MergeUsersRequestBody'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MergeUsersResponseBody'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestException'
          description: BadRequestException
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenException'
          description: ForbiddenException
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessNotFoundException'
          description: BusinessNotFoundException
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrimaryBusinessOwnerAlreadyExistsForBusinessException'
          description: PrimaryBusinessOwnerAlreadyExistsForBusinessException
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsException'
          description: TooManyRequestsException
          headers:
            X-RateLimit-Limit:
              description: Maximum number of requests allowed per minute.
              explode: false
              schema:
                type: integer
              style: simple
            X-RateLimit-Remaining:
              description: Number of remaining requests available.
              explode: false
              schema:
                type: integer
              style: simple
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorException'
          description: InternalServerErrorException
      security:
      - Authorization: []
      summary: Merge users from a source business into a target business
      tags:
      - Users
      x-readme:
        code-samples:
        - language: node
          install: npm install @kanmon/sdk
          name: SDK
          code: "\nkanmonApi.users.mergeUserIntoBusiness({\n  ...params...\n})\n    "
      x-content-type: application/json
      x-accepts:
      - application/json
components:
  schemas:
    UpdateUserRequestBody:
      example:
        firstName: John
        lastName: Smith
        metadata: '{}'
        phoneNumber: '+14155556789'
        address:
          city: San Mateo
          state: CA
          country: USA
          zipcode: '94401'
          addressLineOne: 123 Main Street
        roles:
        - PRIMARY_OWNER
        email: user@gmail.com
      properties:
        firstName:
          description: The user’s first name.
          example: John
          type: string
        lastName:
          description: The user’s last name.
          example: Smith
          type: string
        phoneNumber:
          description: The user’s phone number. No formatting characters, country code is optional.
          example: '+14155556789'
          type: string
        address:
          allOf:
          - $ref: '#/components/schemas/Address'
          description: The user’s address. The address is optional. If you provide the address, you need to provide all the required fields in the address. The address must be a street address, not a PO Box.
          example:
            city: San Mateo
            state: CA
            country: USA
            zipcode: '94401'
            addressLineOne: 123 Main Street
        email:
          description: The user’s email.
          example: user@gmail.com
          type: string
        roles:
          description: The user’s roles. If no roles are defined, the user will be prompted to select a role within Kanmon. <br/><br/>A primary owner is a user with the authority to issue debt on behalf of the business. This means the user can complete onboarding, receive offers, choose to accept offers, sign financing agreements, and service an active issued product. <br/><br/>An operator is a user with permission to service an active issued product. Examples are uploading invoices on behalf of the business, checking the status of payments, etc. <br /><br/>A secondary owner is a beneficial owner of the business who must complete KYC. This means the user can sign financing agreements when required and service an active issued product. During onboarding, the primary owner invites secondary owners. Secondary owners are directed to a separate Kanmon-hosted page where they complete onboarding, sign legal documents, and KYC. They can also access servicing from that page. Kanmon sends a `USER.CREATED` webhook when a secondary owner is created.
          example:
          - PRIMARY_OWNER
          items:
            enum:
            - PRIMARY_OWNER
            - OPERATOR
            type: string
          type: array
        metadata:
          description: Metadata from your system that you want to associate the user with.
          type: object
      type: object
    MergeUsersResponseBody:
      example:
        mergedUsers:
        - lastName: Smith
          metadata: '{}'
          address:
            city: San Mateo
            state: CA
            country: USA
            zipcode: '94401'
            addressLineOne: 123 Main Street
          roles:
          - PRIMARY_OWNER
          businessId: adbcccf9-3a7f-4040-add3-55c9d6da2d37
          isUsCitizen: true
          firstName: John
          createdAt: 2022-06-01 03:57:26.115000+00:00
          platformBusinessId: '12345'
          phoneNumber: '+14155556789'
          platformUserId: '12345'
          id: 1193fdaf-630c-4771-a629-8da7a87947d2
          email: user@gmail.com
          updatedAt: 2022-06-01 03:57:26.115000+00:00
        - lastName: Smith
          metadata: '{}'
          address:
            city: San Mateo
            state: CA
            country: USA
            zipcode: '94401'
            addressLineOne: 123 Main Street
          roles:
          - PRIMARY_OWNER
          businessId: adbcccf9-3a7f-4040-add3-55c9d6da2d37
          isUsCitizen: true
          firstName: John
          createdAt: 2022-06-01 03:57:26.115000+00:00
          platformBusinessId: '12345'
          phoneNumber: '+14155556789'
          platformUserId: '12345'
          id: 1193fdaf-630c-4771-a629-8da7a87947d2
          email: user@gmail.com
          updatedAt: 2022-06-01 03:57:26.115000+00:00
      properties:
        mergedUsers:
          description: An array of users that were merged into the target business.
          items:
            $ref: '#/components/schemas/User'
          type: array
      required:
      - mergedUsers
      type: object
    UserNotFoundException:
      example:
        errorCode: UserNotFoundException
        message: An error occurred.
        timestamp: 2022-06-01 03:57:26.115000+00:00
      properties:
        errorCode:
          description: Safe for programmatic use.
          enum:
          - UserNotFoundException
          type: string
        message:
          description: The human readable description of the error.
          example: An error occurred.
          type: string
        timestamp:
          description: When the error occurred - ISO 8601 format.
          example: 2022-06-01 03:57:26.115000+00:00
          type: string
      required:
      - errorCode
      - message
      - timestamp
      type: object
    UserAlreadyExistsWithPlatformUserIdException:
      properties:
        errorCode:
          description: Safe for programmatic use.
          enum:
          - UserAlreadyExistsWithPlatformUserIdException
          type: string
        message:
          description: The human readable description of the error.
          example: An error occurred.
          type: string
        timestamp:
          description: When the error occurred - ISO 8601 format.
          example: 2022-06-01 03:57:26.115000+00:00
          type: string
      required:
      - errorCode
      - message
      - timestamp
      type: object
    PaginationResult:
      properties:
        limit:
          description: The number of records to limit when performing pagination.
          example: 100
          type: number
        offset:
          description: The number of records to skip when performing pagination.
          example: 0
          type: number
        totalCount:
          description: The total number of records that matched the query.
          example: 100
          type: number
      required:
      - limit
      - offset
      - totalCount
      type: object
    BusinessNotFoundException:
      example:
        errorCode: BusinessNotFoundException
        message: An error occurred.
        timestamp: 2022-06-01 03:57:26.115000+00:00
      properties:
        errorCode:
          description: Safe for programmatic use.
          enum:
          - BusinessNotFoundException
          type: string
        message:
          description: The human readable description of the error.
          example: An error occurred.
          type: string
        timestamp:
          description: When the error occurred - ISO 8601 format.
          example: 2022-06-01 03:57:26.115000+00:00
          type: string
      required:
      - errorCode
      - message
      - timestamp
      type: object
    updateUser_409_response:
      oneOf:
      - $ref: '#/components/schemas/UserAlreadyExistsWithEmailException'
      - $ref: '#/components/schemas/PrimaryBusinessOwnerAlreadyExistsForBusinessException'
    InternalServerErrorException:
      example:
        errorCode: InternalServerErrorException
        message: Internal Server Error
        timestamp: 2022-06-01 03:57:26.115000+00:00
      properties:
        errorCode:
          description: Safe for programmatic use.
          enum:
          - InternalServerErrorException
          type: string
        message:
          description: The human readable description of the error.
          example: Internal Server Error
          type: string
        timestamp:
          description: When the error occurred - ISO 8601 format.
          example: 2022-06-01 03:57:26.115000+00:00
          type: string
      required:
      - errorCode
      - message
      - timestamp
      type: object
    Address:
      properties:
        addressLineOne:
          type: string
        addressLineTwo:
          example: Apt 123
          nullable: true
          type: string
        city:
          type: string
        state:
          description: The 2 character abbreviated state
          enum:
          - AL
          - KY
          - OH
          - AK
          - LA
          - OK
          - AZ
          - ME
          - OR
          - AR
          - MD
          - PA
          - AS
          - MA
          - PR
          - CA
          - MI
          - RI
          - CO
          - MN
          - SC
          - CT
          - MS
          - SD
          - DE
          - MO
          - TN
          - DC
          - MT
          - TX
          - FL
          - NE
          - TT
          - GA
          - NV
          - UT
          - GU
          - NH
          - VT
          - HI
          - NJ
          - VA
          - ID
          - NM
          - VI
          - IL
          - NY
          - WA
          - IN
          - NC
          - WV
          - IA
          - ND
          - WI
          - KS
          - MP
          - WY
          example: CA
          type: string
        zipcode:
          description: Zip code can be 5 digits, 9 digits, or 5+4 including a hyphen or plus sign, e.g. 90210, 902101234, 90210-1234 or 90210+1234
          example: '94401'
          type: string
        country:
          description: USA
          example: USA
          type: string
      required:
      - addressLineOne
      - city
      - country
      - state
      - zipcode
      type: object
    PrimaryBusinessOwnerAlreadyExistsForBusinessException:
      example:
        errorCode: PrimaryBusinessOwnerAlreadyExistsForBusinessException
        message: An error occurred.
        timestamp: 2022-06-01 03:57:26.115000+00:00
      properties:
        errorCode:
          description: Safe for programmatic use.
          enum:
          - PrimaryBusinessOwnerAlreadyExistsForBusinessException
          type: string
        message:
          description: The human readable description of the error.
          example: An error occurred.
          type: string
        timestamp:
          description: When the error occurred - ISO 8601 format.
          example: 2022-06-01 03:57:26.115000+00:00
          type: string
      required:
      - errorCode
      - message
      - timestamp
      type: object
    User:
      example:
        lastName: Smith
        metadata: '{}'
        address:
          city: San Mateo
          state: CA
          country: USA
          zipcode: '94401'
          addressLineOne: 123 Main Street
        roles:
        - PRIMARY_OWNER
        businessId: adbcccf9-3a7f-4040-add3-55c9d6da2d37
        isUsCitizen: true
        firstName: John
        createdAt: 2022-06-01 03:57:26.115000+00:00
        platformBusinessId: '12345'
        phoneNumber: '+14155556789'
        platformUserId: '12345'
        id: 1193fdaf-630c-4771-a629-8da7a87947d2
        email: user@gmail.com
        updatedAt: 2022-06-01 03:57:26.115000+00:00
      properties:
        id:
          description: The UUID representing the user in Kanmon.
          example: 1193fdaf-630c-4771-a629-8da7a87947d2
          type: string
        platformUserId:
          description: Your platform’s unique ID for the user.
          example: '12345'
          nullable: true
          type: string
        platformBusinessId:
          description: Your platform’s unique business ID for the user.
          example: '12345'
          nullable: true
          type: string
        phoneNumber:
          description: The user’s phone number.
          example: '+14155556789'
          nullable: true
          type: string
        businessId:
          description: The UUID representing the user’s business in Kanmon.
          example: adbcccf9-3a7f-4040-add3-55c9d6da2d37
          type: string
        address:
          allOf:
          - $ref: '#/components/schemas/Address'
          description: The user’s address. The address is optional. If you provide the address, you need to provide all the required fields in the address. The address must be a street address, not a PO Box.
          example:
            city: San Mateo
            state: CA
            country: USA
            zipcode: '94401'
            addressLineOne: 123 Main Street
          nullable: true
        email:
          description: The user’s email.
          example: user@gmail.com
          nullable: true
          type: string
        firstName:
          description: The user’s first name.
          example: John
          nullable: true
          type: string
        lastName:
          description: The user’s last name.
          example: Smith
          nullable: true
          type: string
        roles:
          description: The user’s roles. <br/><br/>A primary owner is a user with the authority to issue debt on behalf of the business. This means the user can complete onboarding, receive offers, choose to accept offers, sign financing agreements, and service an active issued product. <br/><br/>An operator is a user with permission to service an active issued product. Examples are uploading invoices on behalf of the business, checking the status of payments, etc. <br /><br/>A secondary owner is a beneficial owner of the business who must complete KYC. This means the user can sign financing agreements when required and service an active issued product. During onboarding, the primary owner invites secondary owners. Secondary owners are directed to a separate Kanmon-hosted page where they complete onboarding, sign legal documents, and KYC. They can also access servicing from that page. Kanmon sends a `USER.CREATED` webhook when a secondary owner is created.
          example:
          - PRIMARY_OWNER
          items:
            enum:
            - PRIMARY_OWNER
            - OPERATOR
            - SECONDARY_OWNER
            type: string
          type: array
        metadata:
          description: Metadata from your system that you want to associate the user with.
          type: object
        isUsCitizen:
          description: Is the user a U.S. citizen?
          example: true
          nullable: true
          type: object
        createdAt:
          description: Creation UTC ISO 8601 timestamp of the user.
          example: 2022-06-01 03:57:26.115000+00:00
          type: string
        updatedAt:
          description: Last updated UTC ISO 8601 timestamp of the user.
          example: 2022-06-01 03:57:26.115000+00:00
          type: string
      required:
      - businessId
      - createdAt
      - email
      - id
      - metadata
      - platformBusinessId
      - updatedAt
      type: object
    ForbiddenException:
      example:
        errorCode: ForbiddenException
        message: Forbidden
        timestamp: 2022-06-01 03:57:26.115000+00:00
      properties:
        errorCode:
          description: Safe for programmatic use.
          enum:
          - ForbiddenException
          type: string
        message:
          description: The human readable description of the error.
          example: Forbidden
          type: string
        timestamp:
          description: When the error occurred - ISO 8601 format.
          example: 2022-06-01 03:57:26.115000+00:00
          type: string
      required:
      - errorCode
      - message
      - timestamp
      type: object
    GetUsersResponse:
      example:
        pagination: ''
        users:
        - lastName: Smith
          metadata: '{}'
          address:
            city: San Mateo
            state: CA
            country: USA
            zipcode: '94401'
            addressLineOne: 123 Main Street
          roles:
          - PRIMARY_OWNER
          businessId: adbcccf9-3a7f-4040-add3-55c9d6da2d37
          isUsCitizen: true
          firstName: John
          createdAt: 2022-06-01 03:57:26.115000+00:00
          platformBusinessId: '12345'
          phoneNumber: '+14155556789'
          platformUserId: '12345'
          id: 1193fdaf-630c-4771-a629-8da7a87947d2
          email: user@gmail.com
          updatedAt: 2022-06-01 03:57:26.115000+00:00
        - lastName: Smith
          metadata: '{}'
          address:
            city: San Mateo
            state: CA
            country: USA
            zipcode: '94401'
            addressLineOne: 123

# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kanmon/refs/heads/main/openapi/kanmon-users-api-openapi.yml