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

# Create an Asset

> Use this endpoint to create the Asset that will be used with the transactions. You can create multiple Assets. However, the Assets must be created one at a time, with each Asset requiring specific decimal place settings and other individual parameters to be defined during the creation process.



## OpenAPI

````yaml /en/openapi/v3-current/ledger.yaml post /v1/organizations/{organization_id}/ledgers/{ledger_id}/assets
openapi: 3.1.0
info:
  title: Midaz Ledger API
  description: >-
    Complete API reference for Midaz Ledger services including organization
    management, ledger operations, assets, segments, portfolios, accounts,
    account types, transactions, operations, balances, operation routes,
    transaction routes, and metadata indexes.
  version: 3.7.1
servers:
  - url: https://ledger.sandbox.lerian.net
security: []
tags:
  - name: Organizations API
  - name: Ledgers API
  - name: Assets API
  - name: Segments API
  - name: Portfolios API
  - name: Account Types API
  - name: Accounts API
  - name: Balances API
  - name: Transactions API
  - name: Operations API
  - name: Operation Routes API
  - name: Transaction Routes API
  - name: Metadata Indexes API
paths:
  /v1/organizations/{organization_id}/ledgers/{ledger_id}/assets:
    post:
      tags:
        - Assets API
      summary: Create an Asset
      description: >-
        Use this endpoint to create the Asset that will be used with the
        transactions. You can create multiple Assets. However, the Assets must
        be created one at a time, with each Asset requiring specific decimal
        place settings and other individual parameters to be defined during the
        creation process.
      parameters:
        - $ref: '#/components/parameters/OrganizationId'
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/LedgerId'
        - $ref: '#/components/parameters/ContentType'
        - $ref: '#/components/parameters/XRequestId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAssetRequest'
            example:
              name: Brazilian Real
              type: currency
              code: BRL
              status:
                code: ACTIVE
                description: >-
                  Primary fiat asset used for domestic settlement and customer
                  balances
              metadata:
                symbol: R$
                country: Brazil
                isoNumeric: '986'
                supportsFractions: true
                decimalPlaces: 2
                category: fiat
                environment: production
                createdBy: system
                notes: >-
                  Standard BRL currency asset for retail banking and Pix
                  operations
      responses:
        '201':
          description: >-
            Indicates that the request was successful and the response contains
            the expected data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAssetResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0003:
                  $ref: '#/components/examples/Error0003'
                Error0004:
                  $ref: '#/components/examples/Error0004'
                Error0005:
                  $ref: '#/components/examples/Error0005'
                Error0009:
                  $ref: '#/components/examples/Error0009'
                Error0033:
                  $ref: '#/components/examples/Error0033'
                Error0040:
                  $ref: '#/components/examples/Error0040'
                Error0047:
                  $ref: '#/components/examples/Error0047'
                Error0050:
                  $ref: '#/components/examples/Error0050'
                Error0051:
                  $ref: '#/components/examples/Error0051'
                Error0053:
                  $ref: '#/components/examples/Error0053'
                Error0067:
                  $ref: '#/components/examples/Error0067'
                Error0094:
                  $ref: '#/components/examples/Error0094'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0041:
                  $ref: '#/components/examples/Error0041'
                Error0042:
                  $ref: '#/components/examples/Error0042'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0043:
                  $ref: '#/components/examples/Error0043'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0037:
                  $ref: '#/components/examples/Error0037'
                Error0038:
                  $ref: '#/components/examples/Error0038'
                Error0110:
                  $ref: '#/components/examples/Error0110'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0003:
                  $ref: '#/components/examples/Error0003'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0046:
                  $ref: '#/components/examples/Error0046'
      security: []
components:
  parameters:
    OrganizationId:
      name: organization_id
      in: path
      description: The unique identifier of the Organization associated with the Ledger.
      required: true
      example: 019c96a0-0a98-7287-9a31-786e0809c769
      schema:
        type: string
    Authorization:
      name: Authorization
      in: header
      description: >-
        The authorization token. **This header is required if your environment
        has Access Manager enabled**.
      required: false
      schema:
        type: string
    LedgerId:
      name: ledger_id
      in: path
      description: The unique identifier of the associated Ledger.
      required: true
      example: 019c96a0-0ac0-7de9-9f53-9cf842a2ee5a
      schema:
        type: string
    ContentType:
      name: Content-Type
      in: header
      description: >-
        The type of media of the resource. Recommended value is
        `application/json`.
      required: false
      example: application/json
      schema:
        type: string
    XRequestId:
      name: X-Request-Id
      in: header
      description: A unique identifier used to trace and track each request.
      required: false
      example: 019c96a0-0a98-7287-9a31-786e0809c769
      schema:
        type: string
        format: uuid
  schemas:
    CreateAssetRequest:
      type: object
      properties:
        name:
          type: string
          description: The name of the Asset, which must be **unique**.
          maxLength: 256
        type:
          type: string
          description: The type of Asset.
          enum:
            - currency
            - crypto
            - commodity
            - others
          format: enum
        code:
          type: string
          description: >-
            The code used to refer to the Asset, according to its type.
            **Important:** It's not possible to create assets with the same type
            and code. Also, if the Asset is a currency (`type` = currency), the
            code must follow the ISO 4217 values.
        status:
          $ref: '#/components/schemas/StatusOrganizationRequest'
        metadata:
          $ref: '#/components/schemas/Metadata'
      required:
        - name
        - type
        - code
    CreateAssetResponse:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the Asset.
          format: uuid
        organizationId:
          type: string
          format: uuid
          description: The unique identifier of the Organization.
        ledgerId:
          type: string
          description: The unique identifier of the Ledger.
          format: uuid
        name:
          type: string
          description: The name of the Asset.
          maxLength: 256
        type:
          type: string
          description: The type of Asset.
          enum:
            - currency
            - crypto
            - commodity
            - others
          format: enum
        code:
          type: string
          description: The code used to refer to the Asset.
        status: 1a408276-69bd-454d-8941-c04efb6729ac
        metadata:
          $ref: '#/components/schemas/Metadata'
        createdAt:
          type: string
          format: date-time
          description: Timestamp of creation (UTC).
        updatedAt:
          type: string
          format: date-time
          description: Timestamp of last update (UTC).
        deletedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: Timestamp of soft deletion, if applicable (UTC).
    ErrorFormat:
      type: object
      description: The response message error.
      required:
        - code
        - title
        - message
      properties:
        code:
          type: string
          description: A unique, stable identifier for the error.
        title:
          type: string
          description: A brief summary of the issue.
        message:
          type: string
          description: Detailed guidance for resolving the error.
        fields:
          type: object
          additionalProperties: true
          description: Additional information about the fields that caused the error.
    StatusOrganizationRequest:
      type: object
      description: >-
        An object containing information about the status. **Important**: If not
        provided, the default status will be 'ACTIVE'.
      properties:
        code:
          type: string
          maxLength: 100
          description: The name of the status.
        description:
          type:
            - string
            - 'null'
          maxLength: 256
          description: The description of the status.
      StatusOrganization:
        type: object
        description: An object containing information about the status.
        properties:
          code:
            type: string
            maxLength: 100
            description: The name of the status.
          description:
            type:
              - string
              - 'null'
            maxLength: 256
            description: The description of the status.
    Metadata:
      type: object
      additionalProperties:
        type: string
      description: >-
        An object containing key-value pairs to add as metadata, where the field
        `name` is the key and the field `value` is the value. For example, to
        add a Cost Center, use 'costCenter': 'BR_11101997'.
  examples:
    Error0003:
      summary: Asset Name or Code Duplicate
      value:
        code: '0003'
        title: Asset Name or Code Duplicate
        message: >-
          An asset with the same name or code already exists in your ledger.
          Please modify the name or code of your new asset.
    Error0004:
      summary: Code Uppercase Requirement
      value:
        code: '0004'
        title: Code Uppercase Requirement
        message: >-
          The code must be in uppercase. Please ensure that the code is in
          uppercase format and try again.
    Error0005:
      summary: Currency Code Standard Compliance
      value:
        code: '0005'
        title: Currency Code Standard Compliance
        message: >-
          Currency-type assets must comply with the ISO-4217 standard. Please
          use a currency code that conforms to ISO-4217 guidelines.
    Error0009:
      summary: Missing Fields in Request
      value:
        code: '0009'
        title: Missing Fields in Request
        message: >-
          Your request is missing one or more required fields. Please refer to
          the documentation to ensure all necessary fields are included in your
          request.
        fields:
          metadataKey: metadataKey is a required field
    Error0033:
      summary: Invalid Code Format
      value:
        code: '0033'
        title: Invalid Code Format
        message: >-
          The 'code' field must be alphanumeric, in upper case, and must contain
          at least one letter. Please provide a valid code.
    Error0040:
      summary: Invalid Type
      value:
        code: '0040'
        title: Invalid Type
        message: >-
          The provided 'type' is not valid. Accepted types are: currency,
          crypto, commodities, or others. Please provide a valid type.
    Error0047:
      summary: Bad Request
      value:
        code: '0047'
        title: Bad Request
        message: >-
          The server could not understand the request due to malformed syntax.
          Please check the listed fields and try again.
    Error0050:
      value:
        code: '0050'
        title: Invalid Metadata
        message: >-
          One or more metadata entries are invalid. Please ensure metadata keys
          and values follow the allowed format.
      summary: Invalid Metadata
    Error0051:
      value:
        code: '0051'
        title: Invalid Metadata Key
        message: >-
          A metadata key contains unsupported characters or exceeds length
          limits. Please correct the key and try again.
      summary: Invalid Metadata Key
    Error0053:
      value:
        code: '0053'
        title: Unexpected Fields in the Request
        message: >-
          The request body contains more fields than expected. Please send only
          the allowed fields as per the documentation. The unexpected fields are
          listed in the fields object.
        fields:
          '{{field}}': '{{value}}'
      summary: Unexpected Fields in the Request
    Error0067:
      value:
        code: '0067'
        title: Invalid Metadata Nesting
        message: >-
          The metadata object cannot contain nested values. Please ensure that
          the value {{value}} is not nested and try again.
      summary: Invalid Metadata Nesting
    Error0094:
      value:
        code: '0094'
        title: Invalid Request Body
        message: >-
          The request body is invalid or could not be parsed. Please check JSON
          structure and field types.
      summary: Invalid Request Body
    Error0041:
      summary: Token Missing
      value:
        code: '0041'
        title: Token Missing
        message: >-
          A valid token must be provided in the request header. Please include a
          token and try again.
    Error0042:
      summary: Invalid Token
      value:
        code: '0042'
        title: Invalid Token
        message: >-
          The provided token is expired, invalid or malformed. Please provide a
          valid token and try again.
    Error0043:
      summary: Insufficient Privileges
      value:
        code: '0043'
        title: Insufficient Privileges
        message: >-
          You do not have the necessary permissions to perform this action.
          Please contact your administrator if you believe this is an error.
    Error0037:
      summary: Ledger ID Not Found
      value:
        code: '0037'
        title: Ledger ID Not Found
        message: >-
          The provided ledger ID does not exist in our records. Please verify
          the ledger ID and try again.
    Error0038:
      summary: Organization ID Not Found
      value:
        code: '0038'
        title: Organization ID Not Found
        message: >-
          The provided organization ID does not exist in our records. Please
          verify the organization ID and try again.
    Error0110:
      summary: No Account Types Found
      value:
        code: '0110'
        title: No Account Types Found
        message: >-
          No account types were found for the specified ledger. Please create an
          account type or verify the ledger exists.
    Error0046:
      summary: Internal Server Error
      value:
        code: '0046'
        title: Internal Server Error
        message: >-
          The server encountered an unexpected error. Please try again later or
          contact support.

````