---
title: "Link Contract"
method: POST
path: "/api/v1/tokenization/tokens/link"
tags: ["tokenization"]
---

# Link Contract

`POST /api/v1/tokenization/tokens/link`

Link an existing deployed contract to the organization for tokenization.

## Headers

- `x-sdk-version` string, required

## Request body

- LinkContractBodyDto
  - `type` string
  - `refId` string
  - `displayName` string
  - `networkId` string, required
  - `contractAddress` string, required

## Response `200`

Contract linked

- LinkContractResponseDto
  - `link` TokenResponseDto
    - `id` string
    - `status` string
    - `type` string
    - `displayName` string
    - `tokenMetadata` TokenMetadataDto
      - `name` string
      - `symbol` string
      - `decimals` number
      - `standard` string
      - `network` string
      - `contractAddress` string
      - `contractTemplateId` string
      - `contractDeploymentId` string
      - `addressId` string

## Other responses

- `400` — 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. |
- `401` — 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. |
- `403` — 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 |
- `404` — 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. |
- `409` — 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. |
- `500` — 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. |

## Changes

- **2026-04-21** `bdac7e47d1c2` — 42 warning
  - added the new `ERR_147` enum value to the `allOf[#/components/schemas/ApiErrorResponseDto]/code` response property for the response status `400`
  - added the new `ERR_147` enum value to the `allOf[#/components/schemas/ApiErrorResponseDto]/code` response property for the response status `401`
  - added the new `ERR_147` enum value to the `allOf[#/components/schemas/ApiErrorResponseDto]/code` response property for the response status `403`
  - added the new `ERR_147` enum value to the `allOf[#/components/schemas/ApiErrorResponseDto]/code` response property for the response status `404`
  - …38 more
- **2026-03-13** `86f37d72f0a0` — 38 breaking, 19 warning, 15 info
  - added the new required request property `networkId`
  - the `header` request parameter `x-sdk-version` became required
  - the response's body type/format changed from `object`/`` to ``/`` for status `400`
  - the response's body type/format changed from `object`/`` to ``/`` for status `401`
  - …68 more
- **2026-01-31** `13aade479509` — 1 breaking, 8 info
  - removed the success response with the status `201`
  - the `contractAddress` request property's minLength was decreased from `1` to `0`
  - added the non-success response with the status `400`
  - added the non-success response with the status `401`
  - …5 more

[Change history](https://skmtc.dev/oumla/apis/oumla-core-server/changes/api/v1/tokenization/tokens/link/post.md)

---

[API](https://skmtc.dev/oumla/apis/oumla-core-server.md) · [All operations](https://skmtc.dev/oumla/apis/oumla-core-server/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/oumla/oumla-core-server/revisions/2154835230b5/schema)
