Oumla Ltd tokenization API

The tokenization API from Oumla Ltd — 9 operation(s) for tokenization.

OpenAPI Specification

oumla-ltd-tokenization-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Oumla Core Server addresses tokenization API
  description: 'Core API. Errors, request and response are documented per endpoint. Error response shape: code, category, message, statusCode, path, timestamp, requestId.'
  version: '1.0'
  contact: {}
servers:
- url: https://sandbox.oumla.com
  description: Mainnet
  x-fern-server-name: Mainnet
tags:
- name: tokenization
paths:
  /api/v1/tokenization/tokens:
    post:
      description: Start the issue-token workflow. Returns the workflowId, tokenId, and status.
      operationId: issueNewToken
      parameters:
      - $ref: '#/components/parameters/SdkVersionHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueNewTokenRequestBody'
      responses:
        '202':
          description: Issue token workflow started
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueTokenWorkflowResponseDto'
        '400':
          description: 'Bad request or validation failed.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-010 | The request could not be processed. |

            | ERR-310 | Contract does not have a valid ABI. |

            | ERR-311 | Contract initialize function not found. |

            | ERR-312 | Required initialization parameters are missing. |

            | ERR-313 | Parameter types do not match the expected types. |

            | ERR-146 | Contract deployment is still in progress. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_010
                    - ERR_310
                    - ERR_311
                    - ERR_312
                    - ERR_313
                    - ERR_146
                    description: 'One of: ERR-010: The request could not be processed.; ERR-310: Contract does not have a valid ABI.; ERR-311: Contract initialize function not found.; ERR-312: Required initialization parameters are missing.; ERR-313: Parameter types do not match the expected types.; ERR-146: Contract deployment is still in progress.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_010
                  message: The request could not be processed.
                  category: VALIDATION
                  statusCode: 400
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '401':
          description: 'Unauthorized – invalid or missing token.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-008 | You need to sign in to continue. |

            | ERR-011 | Your session is invalid or expired. Please sign in again. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_008
                    - ERR_011
                    description: 'One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_008
                  message: You need to sign in to continue.
                  category: AUTHORIZATION
                  statusCode: 401
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '403':
          description: 'Forbidden – insufficient permissions.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-009 | You don''t have permission to do that. |

            | ERR-410 | Error occurred |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_009
                    - ERR_410
                    description: 'One of: ERR-009: You don''t have permission to do that.; ERR-410: Error occurred'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_009
                  message: You don't have permission to do that.
                  category: AUTHORIZATION
                  statusCode: 403
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '404':
          description: 'Resource not found.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-013 | Organization not found. |

            | ERR-066 | Contract not found. |

            | ERR-096 | Address not found. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_013
                    - ERR_066
                    - ERR_096
                    description: 'One of: ERR-013: Organization not found.; ERR-066: Contract not found.; ERR-096: Address not found.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_013
                  message: Organization not found.
                  category: RESOURCE
                  statusCode: 404
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '500':
          description: 'Internal server error.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-019 | Something went wrong on our side. |

            | ERR-186 | Failed to issue new token. |

            | ERR-999 | An unexpected error occurred. Please try again. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_019
                    - ERR_186
                    - ERR_999
                    description: 'One of: ERR-019: Something went wrong on our side.; ERR-186: Failed to issue new token.; ERR-999: An unexpected error occurred. Please try again.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_019
                  message: Something went wrong on our side.
                  category: SYSTEM
                  statusCode: 500
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
      security:
      - x-api-key: []
      summary: Issue Token
      tags:
      - tokenization
    get:
      description: List issued tokens for the organization with pagination.
      operationId: getTokens
      parameters:
      - name: skip
        required: false
        in: query
        schema:
          default: 0
          example: 0
          type: number
      - name: take
        required: false
        in: query
        schema:
          default: 10
          example: 25
          type: number
      - $ref: '#/components/parameters/SdkVersionHeader'
      responses:
        '200':
          description: Tokens (paginated)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTokensResponseDto'
        '400':
          description: 'Bad request or validation failed.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-010 | The request could not be processed. |

            | ERR-022 | Invalid pagination parameters. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_010
                    - ERR_022
                    description: 'One of: ERR-010: The request could not be processed.; ERR-022: Invalid pagination parameters.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_010
                  message: The request could not be processed.
                  category: VALIDATION
                  statusCode: 400
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '401':
          description: 'Unauthorized – invalid or missing token.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-008 | You need to sign in to continue. |

            | ERR-011 | Your session is invalid or expired. Please sign in again. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_008
                    - ERR_011
                    description: 'One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_008
                  message: You need to sign in to continue.
                  category: AUTHORIZATION
                  statusCode: 401
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '403':
          description: 'Forbidden – insufficient permissions.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-009 | You don''t have permission to do that. |

            | ERR-410 | Error occurred |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_009
                    - ERR_410
                    description: 'One of: ERR-009: You don''t have permission to do that.; ERR-410: Error occurred'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_009
                  message: You don't have permission to do that.
                  category: AUTHORIZATION
                  statusCode: 403
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '500':
          description: 'Internal server error.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-019 | Something went wrong on our side. |

            | ERR-999 | An unexpected error occurred. Please try again. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_019
                    - ERR_999
                    description: 'One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_019
                  message: Something went wrong on our side.
                  category: SYSTEM
                  statusCode: 500
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
      security:
      - x-api-key: []
      summary: List Tokens
      tags:
      - tokenization
  /api/v1/tokenization/tokens/link:
    post:
      description: Link an existing deployed contract to the organization for tokenization.
      operationId: linkContract
      parameters:
      - $ref: '#/components/parameters/SdkVersionHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkContractBodyDto'
      responses:
        '200':
          description: Contract linked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkContractResponseDto'
        '400':
          description: 'Bad request or validation failed.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-010 | The request could not be processed. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_010
                    description: 'One of: ERR-010: The request could not be processed.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_010
                  message: The request could not be processed.
                  category: VALIDATION
                  statusCode: 400
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '401':
          description: 'Unauthorized – invalid or missing token.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-008 | You need to sign in to continue. |

            | ERR-011 | Your session is invalid or expired. Please sign in again. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_008
                    - ERR_011
                    description: 'One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_008
                  message: You need to sign in to continue.
                  category: AUTHORIZATION
                  statusCode: 401
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '403':
          description: 'Forbidden – insufficient permissions.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-009 | You don''t have permission to do that. |

            | ERR-410 | Error occurred |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_009
                    - ERR_410
                    description: 'One of: ERR-009: You don''t have permission to do that.; ERR-410: Error occurred'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_009
                  message: You don't have permission to do that.
                  category: AUTHORIZATION
                  statusCode: 403
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '404':
          description: 'Resource not found.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-013 | Organization not found. |

            | ERR-066 | Contract not found. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_013
                    - ERR_066
                    description: 'One of: ERR-013: Organization not found.; ERR-066: Contract not found.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_013
                  message: Organization not found.
                  category: RESOURCE
                  statusCode: 404
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '409':
          description: 'Conflict – resource already exists or state conflict.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-000 | The request could not be processed. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_000
                    description: 'One of: ERR-000: The request could not be processed.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_000
                  message: The request could not be processed.
                  category: CONFLICT
                  statusCode: 409
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '500':
          description: 'Internal server error.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-019 | Something went wrong on our side. |

            | ERR-999 | An unexpected error occurred. Please try again. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_019
                    - ERR_999
                    description: 'One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_019
                  message: Something went wrong on our side.
                  category: SYSTEM
                  statusCode: 500
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
      security:
      - x-api-key: []
      summary: Link Contract
      tags:
      - tokenization
  /api/v1/tokenization/collections:
    post:
      description: Start the create-collection workflow. Returns workflow ID; collection is created asynchronously.
      operationId: createCollection
      parameters:
      - $ref: '#/components/parameters/SdkVersionHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCollectionBodyDto'
      responses:
        '202':
          description: Create new Collection - workflow started
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCollectionWorkflowResponseDto'
        '400':
          description: 'Bad request or validation failed.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-010 | The request could not be processed. |

            | ERR-310 | Contract does not have a valid ABI. |

            | ERR-311 | Contract initialize function not found. |

            | ERR-312 | Required initialization parameters are missing. |

            | ERR-313 | Parameter types do not match the expected types. |

            | ERR-126 | Contract deployment failed. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_010
                    - ERR_310
                    - ERR_311
                    - ERR_312
                    - ERR_313
                    - ERR_126
                    description: 'One of: ERR-010: The request could not be processed.; ERR-310: Contract does not have a valid ABI.; ERR-311: Contract initialize function not found.; ERR-312: Required initialization parameters are missing.; ERR-313: Parameter types do not match the expected types.; ERR-126: Contract deployment failed.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_010
                  message: The request could not be processed.
                  category: VALIDATION
                  statusCode: 400
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '401':
          description: 'Unauthorized – invalid or missing token.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-008 | You need to sign in to continue. |

            | ERR-011 | Your session is invalid or expired. Please sign in again. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_008
                    - ERR_011
                    description: 'One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_008
                  message: You need to sign in to continue.
                  category: AUTHORIZATION
                  statusCode: 401
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '403':
          description: 'Forbidden – insufficient permissions.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-009 | You don''t have permission to do that. |

            | ERR-410 | Error occurred |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_009
                    - ERR_410
                    description: 'One of: ERR-009: You don''t have permission to do that.; ERR-410: Error occurred'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_009
                  message: You don't have permission to do that.
                  category: AUTHORIZATION
                  statusCode: 403
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '404':
          description: 'Resource not found.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-013 | Organization not found. |

            | ERR-066 | Contract not found. |

            | ERR-096 | Address not found. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_013
                    - ERR_066
                    - ERR_096
                    description: 'One of: ERR-013: Organization not found.; ERR-066: Contract not found.; ERR-096: Address not found.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_013
                  message: Organization not found.
                  category: RESOURCE
                  statusCode: 404
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
        '500':
          description: 'Internal server error.


            **Applicable error codes and client messages**


            The response body contains one of the following error codes and the corresponding client-facing message.


            | Code | Client message |

            |------|----------------|

            | ERR-019 | Something went wrong on our side. |

            | ERR-999 | An unexpected error occurred. Please try again. |'
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiErrorResponseDto'
                properties:
                  code:
                    type: string
                    enum:
                    - ERR_019
                    - ERR_999
                    description: 'One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again.'
                  message:
                    type: string
                    description: Client-facing message for this error code (see table above).
                example:
                  code: ERR_019
                  message: Something went wrong on our side.
                  category: SYSTEM
                  statusCode: 500
                  path: /api/v1/example
                  timestamp: '2025-02-20T12:00:00.000Z'
                  requestId: req-example-id
      security:
      - x-api-key

# --- truncated at 32 KB (107 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/oumla-ltd/refs/heads/main/openapi/oumla-ltd-tokenization-api-openapi.yml