<!-- Generated from the canonical Teloring documentation source. Do not edit this file. -->

Canonical page: https://docs.teloring.com/api/create-signing-link
Last modified: 2026-08-20T20:52:05.000Z

# Create a signing link

import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import ParamsDetails from "@theme/ParamsDetails";
import RequestSchema from "@theme/RequestSchema";
import StatusCodes from "@theme/StatusCodes";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";
import Heading from "@theme/Heading";
import Translate from "@docusaurus/Translate";

<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Create a signing link"}
>
</Heading>

<MethodEndpoint
  method={"post"}
  path={"/signature/links"}
  context={"endpoint"}
>
  
</MethodEndpoint>



Create a signing link for an **active** document. **Costs credits.**

Both `customer_id` and `contact_id` are required. The customer is the business
the document belongs to; the contact is the person who will sign it — and a
signed document that cannot say who signed it is not worth much.

**Safe to retry.** Calling this twice for the same document and contact returns
the existing link instead of creating a second one, and does not charge again.
`created` in the response tells you which happened, and the status code follows
it (`201` for a new link, `200` for an existing one).

<Heading
  id={"request"}
  as={"h2"}
  className={"openapi-tabs__heading"}
>
  <Translate id="theme.openapi.request.title">Request</Translate>
</Heading>

<ParamsDetails>
  
</ParamsDetails>

<RequestSchema
  {...require("./create-signing-link.RequestSchema.json")}
>
  
</RequestSchema>

<StatusCodes
  {...require("./create-signing-link.StatusCodes.json")}
>
  
</StatusCodes>
