# API · Create payment link

> Payment link creation through the API, with response callback and webhook.

- kind: api-operation
- status: stable
- api_version: v1
- last_verified: 2026-08-29
- url: https://tilopay.com/en/developers/api/links-de-pago/create-link-payment

```http
POST /api/v1/createLinkPayment
```

## What it does [#que-hace]

Creates a payment link with amount, currency and usage behaviour.

## Authentication [#autenticacion]

Requires the API bearer token in the `Authorization` header — see [authentication](/en/developers/api/autenticacion).

## Parameters [#parametros]

<Param id="create-link-payment-parametro-key" name="key" type="string" required>
Tilopay integration key.
</Param>

<Param id="create-link-payment-parametro-amount" name="amount" type="string" required>
Amount of the payment link.
</Param>

<Param id="create-link-payment-parametro-currency" name="currency" type="string" required>
Currency code in ISO 4217 format.
</Param>

<Param id="create-link-payment-parametro-reference" name="reference" type="string">
Reference of the payment link.
</Param>

<Param id="create-link-payment-parametro-type" name="type" type="integer">
Link type: 0 unlimited, 1 single use.
</Param>

<Param id="create-link-payment-parametro-description" name="description" type="string">
Payment description.
</Param>

<Param id="create-link-payment-parametro-client" name="client" type="string">
Customer name. It only applies when `type` is 1.
</Param>

<Param id="create-link-payment-parametro-callback-url" name="callback_url" type="string">
Optional field. URL, over **GET**, the customer is redirected to with the response once the payment is completed. Example of the data sent: `code=Val&description=Val&auth=Val&tilopayLinkId=Val&orderNumber=Val&tilopayOrderId=Val&creditCardToken=Val&creditCardBrand=Val&last4CreditCardNumber=Val&orderHash=Val`
</Param>

<Param id="create-link-payment-parametro-webhook-url" name="webhook_url" type="string">
Optional field. URL to send the response webhook to once the payment is completed.
It must accept the **POST** method to receive the data. Example of the data sent:

```json
{
  "code": "1",
  "codeDescription": "Aprobada",
  "auth": "123456",
  "tilopayLinkId": 54421,
  "orderNumber": "TPT123",
  "tilopayOrderId": 12233,
  "creditCardToken": "41111******11111",
  "creditCardBrand": "Visa",
  "last4CreditCardNumber": "1111",
  "linkDescription": "Descripcion del link de pago",
  "orderHash": ""
}
```
</Param>

## Request example [#request]

The `<...>` values are placeholders: replace them with your own credentials and data.

```json
{
  "key": "<api_key>",
  "amount": "10",
  "currency": "USD",
  "reference": "123456",
  "type": 0,
  "description": "Description",
  "client": "Client name",
  "callback_url": "",
  "webhook_url": ""
}
```

## Response [#respuesta]

```json
{
  "type": "200",
  "message": "Success",
  "url": "https://app.tilopay.com/link/MjMwMjQ=",
  "id": 1
}
```

To interpret a response that is not a success, see [how to read an error response](/en/developers/api/procesos-operativos/errors).
