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

# Create a custom account

> Creates a new custom leaf account under an existing parent. The account type (ASSET, LIABILITY, EQUITY, REVENUE, EXPENSE) is determined by the parent's position in the chart of accounts — choose the parent that matches the type you need.

`name` is the display label used in the ledger and category pickers. Optional `emoji` and `color` are UI hints. `searchTerms` improves auto-categorization matching by the AI enrichment layer.



## OpenAPI

````yaml /openapi.json post /api/accounts
openapi: 3.1.0
info:
  title: Equated API
  version: 1.0.0
  description: >-
    Agent-facing accounting API. Authenticate with a bearer token issued from
    Settings → API Tokens, or via the in-app session cookie when called from the
    web client.
servers:
  - url: https://app.equated.co
    description: API server
security: []
paths:
  /api/accounts:
    post:
      tags:
        - Accounts
      summary: Create a custom account
      description: >-
        Creates a new custom leaf account under an existing parent. The account
        type (ASSET, LIABILITY, EQUITY, REVENUE, EXPENSE) is determined by the
        parent's position in the chart of accounts — choose the parent that
        matches the type you need.


        `name` is the display label used in the ledger and category pickers.
        Optional `emoji` and `color` are UI hints. `searchTerms` improves
        auto-categorization matching by the AI enrichment layer.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 255
                parentId:
                  type: integer
                  minimum: 0
                  exclusiveMinimum: true
                kind:
                  type: string
                  enum:
                    - group
                    - category
                emoji:
                  type: string
                  maxLength: 8
                color:
                  type: string
                  maxLength: 7
                description:
                  type: string
                  maxLength: 500
                searchTerms:
                  type: array
                  items:
                    type: string
                registerKind:
                  type: string
                  enum:
                    - clearing
              required:
                - name
                - parentId
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  category:
                    $ref: '#/components/schemas/Account'
                required:
                  - category
      security:
        - bearerAuth: []
components:
  schemas:
    Account:
      type: object
      properties:
        id:
          type: integer
          minimum: 0
          exclusiveMinimum: true
        key:
          type: string
        name:
          type: string
        type:
          type: string
        parentId:
          type: integer
          nullable: true
          minimum: 0
          exclusiveMinimum: true
        kind:
          type: string
          enum:
            - group
            - category
        emoji:
          type: string
          nullable: true
        color:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        registerKind:
          type: string
          nullable: true
          enum:
            - clearing
            - bank
            - null
        bankAccount:
          type: object
          nullable: true
          properties:
            id:
              type: integer
              minimum: 0
              exclusiveMinimum: true
            feedType:
              type: string
            institutionName:
              type: string
              nullable: true
            institutionLogo:
              type: string
              nullable: true
            institutionUrl:
              type: string
              nullable: true
            isoCurrencyCode:
              type: string
              nullable: true
          required:
            - id
            - feedType
            - institutionName
            - institutionLogo
            - institutionUrl
            - isoCurrencyCode
          additionalProperties:
            nullable: true
      required:
        - id
        - key
        - name
        - type
        - parentId
        - kind
        - bankAccount
      additionalProperties:
        nullable: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API token issued from the Equated app under Settings → API Tokens.

````