---
title: "Create Link Token"
method: POST
path: "/identities/link-token/"
tags: ["Identity"]
---

# Create Link Token

`POST /identities/link-token/`

## Request

- Base URL: `https://api.zerosettle.io/v1`
- URL: `https://api.zerosettle.io/v1/identities/link-token/`
- Auth: API key in header `X-ZeroSettle-Key`

Mints a short-lived link token for an app to present with its publishable key (see Present Link Token). Use it when you want the app to finish the move instead of calling Reconcile Identities yourself.

Authenticated with your **secret key** (`zs_sk_*`). The token names one `from` and one `into`, expires after 10 minutes, and can be used once. Minting does not check the ids: the checks happen when the token is presented. You can also sign tokens yourself with no network call, see the Guest to Account guide for the exact format.

## Request body

- object
  - `from` string, required: The id to merge away, usually the guest id. Ids are matched without regard to letter case.
  - `into` string, required: The id that keeps the purchases, usually the account id.

## Response `200`

The token.

- object
  - `token` string: The signed link token. Pass it to the SDK's `reconcile(linkToken:)`.
  - `expires_at` string, date-time: When the token expires.

## Other responses

- `400`: `invalid_request`. The body is not JSON with string `from` and `into` of at most 255 characters.
- `401`: `secret_key_required`: no key, a publishable key, or a secret key that is not valid.

## Changes

- **2026-10-26** `8b59573fcc02`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zerosettle/apis/zerosettle-iap-api/changes/identities/link-token/post.md)

---

[API](https://skmtc.dev/zerosettle/apis/zerosettle-iap-api.md) - [All operations](https://skmtc.dev/zerosettle/apis/zerosettle-iap-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zerosettle/apis/zerosettle-iap-api/revisions/4cd9e227d9b8?raw)
