> ## Documentation Index
> Fetch the complete documentation index at: https://developer.finogates.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create User

> Create a new user (one of your customers) on your platform.

When the user is created, a primary wallet in US dollars (USD) is
automatically set up for them so they can hold and move funds. You can view
or manage that wallet later through the wallets endpoints.

Both `name` and `email` are required, and the `email` must be unique across
your platform.



## OpenAPI

````yaml POST /v1/platform/users
openapi: 3.1.0
info:
  title: Finogate Platform API v1
  version: 0.1.0
servers:
  - url: https://api-sandbox.finogates.com
    description: Sandbox
  - url: https://api.finogates.com
    description: Production
security: []
tags:
  - name: auth
  - name: users
  - name: payees
  - name: verification
  - name: bank accounts
  - name: card processing
  - name: digital-assets
  - name: international
  - name: fees
  - name: onboarding
  - name: pending-applications
  - name: wallets
  - name: payments
  - name: document mailing
  - name: merchant onboarding
  - name: catalog
  - name: webhooks
  - name: screening
  - name: Platform - File Scanning
  - name: phone-numbers
  - name: sms
  - name: calls
  - name: listings
  - name: Card Transfers
  - name: embed-tokens
paths:
  /v1/platform/users:
    post:
      tags:
        - users
      summary: Add a New User
      description: >-
        Create a new user (one of your customers) on your platform.


        When the user is created, a primary wallet in US dollars (USD) is

        automatically set up for them so they can hold and move funds. You can
        view

        or manage that wallet later through the wallets endpoints.


        Both `name` and `email` are required, and the `email` must be unique
        across

        your platform.
      operationId: create_user_v1_platform_users_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformUserCreate'
      responses:
        '200':
          description: The newly created user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonResponse_PlatformUserRead_'
              example:
                status_code: 201
                data:
                  user_id: b3a9b622-cc63-4d3c-aad6-2d8e29e6f9d4
                  name: John Doe
                  email: john.doe@example.com
                  is_active: true
                  created_at: '2025-06-10T18:10:42.000Z'
                query_generated_time: 1712847600000
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - _AuthenticatedBearer: []
components:
  schemas:
    PlatformUserCreate:
      properties:
        first_name:
          anyOf:
            - type: string
              maxLength: 100
            - type: 'null'
          title: First Name
          description: >-
            User's given name. Required for an individual (`is_business_user`
            false); ignored for a business.
          examples:
            - John
        last_name:
          anyOf:
            - type: string
              maxLength: 100
            - type: 'null'
          title: Last Name
          description: >-
            User's family name. Required for an individual; ignored for a
            business.
          examples:
            - Doe
        name:
          anyOf:
            - type: string
              maxLength: 100
            - type: 'null'
          title: Name
          description: >-
            Deprecated combined full name for an individual. Send `first_name`
            and `last_name` instead; when only `name` is provided it is split
            into first/last automatically and must carry both.
          examples:
            - John Doe
        is_business_user:
          type: boolean
          title: Is Business User
          description: >-
            Set to true when this user is a business/organization rather than an
            individual. When true, send `business_name` and omit first/last
            name. This is fixed at creation and cannot be changed later.
          default: false
          examples:
            - false
        business_name:
          anyOf:
            - type: string
              maxLength: 100
            - type: 'null'
          title: Business Name
          description: >-
            Organization name. Required when `is_business_user` is true; leave
            empty for an individual.
          examples:
            - Acme Corporation
        email:
          type: string
          maxLength: 254
          format: email
          title: Email
          description: >-
            User's email address. Must be unique within the platform and RFC
            5321 compliant.
          examples:
            - john.doe@example.com
      type: object
      required:
        - email
      title: PlatformUserCreate
      description: Create a new end user on the platform.
    CommonResponse_PlatformUserRead_:
      properties:
        status_code:
          type: integer
          title: Status Code
          description: HTTP status code for the response.
        data:
          $ref: '#/components/schemas/PlatformUserRead'
          description: Payload or error details.
        query_generated_time:
          type: integer
          title: Query Generated Time
          description: >-
            UTC timestamp (milliseconds since epoch) when response was
            generated.
      type: object
      required:
        - status_code
        - data
        - query_generated_time
      title: CommonResponse[PlatformUserRead]
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    PlatformUserRead:
      properties:
        user_id:
          type: string
          format: uuid
          title: User Id
          description: Unique user identifier (UUID).
          examples:
            - b3a9b622-cc63-4d3c-aad6-2d8e29e6f9d4
        first_name:
          anyOf:
            - type: string
            - type: 'null'
          title: First Name
          description: User's given name.
          examples:
            - John
        last_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Name
          description: User's family name.
          examples:
            - Doe
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: >-
            Display name — the business name for a business, otherwise the
            combined given + family name.
          examples:
            - John Doe
        is_business_user:
          type: boolean
          title: Is Business User
          description: >-
            Whether this user is a business/organization rather than an
            individual.
          default: false
          examples:
            - false
        business_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Business Name
          description: >-
            Organization name — populated for a business, null for an
            individual.
          examples:
            - null
        email:
          type: string
          title: Email
          description: User's email address.
          examples:
            - john.doe@example.com
        is_active:
          type: boolean
          title: Is Active
          description: Whether the user account is active.
          examples:
            - true
        created_at:
          type: string
          format: date-time
          title: Created At
          description: Account creation timestamp (UTC).
          examples:
            - '2025-06-10T18:10:42.000Z'
        kyc_status:
          anyOf:
            - type: integer
            - type: 'null'
          title: Kyc Status
          description: >-
            This user's own KYC status — a ``ComplianceCheckStatus`` code
            (1=pending, 2=in_review, 3=approved, 4=rejected). For the tenant's
            master user this is the platform's tenant-scope status; for an end
            user it is their individual verification. Null if no KYC check
            exists yet.
        kyb_status:
          anyOf:
            - type: integer
            - type: 'null'
          title: Kyb Status
          description: >-
            This user's own KYB status — a ``ComplianceCheckStatus`` code
            (1=pending, 2=in_review, 3=approved, 4=rejected). For the tenant's
            master user this is the platform's governing (onboarding-linked)
            KYB; for an end user it is their individual business verification.
            Null if no KYB check exists yet.
        mailing_line_1:
          anyOf:
            - type: string
            - type: 'null'
          title: Mailing Line 1
          description: >-
            Sender mailing address printed on the shipper/FROM block of a
            mailed-document (USPS/FedEx) shipping label. Used in place of your
            platform's default collection address once every `mailing_*` field
            below — including `mailing_phone` — is set. Manage it with `PATCH
            /v1/platform/users/{user_id}/mailing-address`.
        mailing_line_2:
          anyOf:
            - type: string
            - type: 'null'
          title: Mailing Line 2
        mailing_city:
          anyOf:
            - type: string
            - type: 'null'
          title: Mailing City
        mailing_state:
          anyOf:
            - type: string
            - type: 'null'
          title: Mailing State
        mailing_zip_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Mailing Zip Code
        mailing_country:
          anyOf:
            - type: string
            - type: 'null'
          title: Mailing Country
          description: ISO 3166-1 alpha-2 country code, e.g. `US`.
        mailing_phone:
          anyOf:
            - type: string
            - type: 'null'
          title: Mailing Phone
      type: object
      required:
        - user_id
        - email
        - is_active
        - created_at
      title: PlatformUserRead
      description: |-
        User representation returned by the platform API.

        Only public fields are included — no ``internal_id``,
        ``hashed_password``, or ``tenant_internal_id``.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    _AuthenticatedBearer:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: /v1/platform/auth/token

````