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

# Create Spotflow Accounts

> Wallets are created only through the API and serve a unique purpose to act as a pocket of money where funds can sit in. Importantly, wallets do not require BVNs upon creation.

## Adding Test Funds

<Info>
  On test mode with your test keys, you can easily add fake funds to the jollof bank account number created for you using our [Funds Simulator App](https://d2i9iv7q8xti2t.cloudfront.net/). Note that this is for NGN and GHS only.

  See the full guide on [Adding Fake Funds For Testing](/expert-desk/simulating-funds).
</Info>


## OpenAPI

````yaml openapi.json POST /accounts
openapi: 3.1.0
info:
  title: Spotflow
  description: ''
  license:
    name: MIT
  version: 1.0.0
servers:
  - description: Production server
    url: https://api.spotflow.co/api/v1
security:
  - bearerAuth: []
paths:
  /accounts:
    post:
      description: >-
        Wallets are created only through the API and serve a unique purpose to
        act as a pocket of money where funds can sit in. Importantly, wallets do
        not require BVNs upon creation.
      operationId: WalletCreation
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                currency:
                  type: string
                  example: NGN
                  description: >-
                    According, to our currently supported currencies, this is in
                    NGN and GHS.
                accountName:
                  type: string
                  example: Quantum Technologies
                  description: Your desired name for your sub account.
      responses:
        '200':
          description: A JSON array of subaccounts objects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateWalletDetailsResponse'
        '400':
          description: Not Found - No subscriptions found for the given plan ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '401':
          description: Unauthorized - Invalid or missing authentication token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error401'
components:
  schemas:
    CreateWalletDetailsResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: c1fba25a-a36b-479c-b17d-64dbaf3ba32c
        balanceId:
          type: string
          example: bln_52448a75-248e-4277-932f-5af5c325d372
        accountName:
          type: string
          example: Quantum Technologies
        accountNumber:
          type: string
          example: '7706438396'
        parentAccountId:
          type: string
          format: uuid
          example: c1fba25a-a36b-479c-b17d-64dbaf3ba32c
        currency:
          type: string
          example: NGN
        mode:
          type: string
          enum:
            - live
            - test
          example: live
        accountTag:
          type: string
          example: main-account
        status:
          type: string
          example: active
        accountDetails:
          type: object
          properties:
            accountName:
              type: string
              example: SPOTFLOW/Quantum Technologies
            accountNumber:
              type: string
              example: '7806438396'
            bankName:
              type: string
              example: Testbank MFB
      required:
        - id
        - balanceId
        - accountName
        - accountNumber
        - parentAccountId
        - currency
        - mode
        - status
    Error400:
      type: object
      properties:
        error:
          type: string
          example: Missing Parameter
        message:
          type: string
          example: missing_parameter
        status:
          type: integer
          format: float
          example: 400
    Error401:
      type: object
      properties:
        error:
          type: string
          example: Unauthorized
        message:
          type: string
          example: invalid_credentials
        status:
          type: integer
          format: float
          example: 401
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````