Skip to main content
POST
/
v1
/
payment-links
cURL
curl -X POST https://api.troqpay.com/v1/payment-links \
  -H "Authorization: Bearer trq_test_xxx" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: link_1001" \
  -d '{
    "productId": "plano-pro",
    "expiresInSeconds": 1800,
    "successUrl": "https://loja.example.com/obrigado",
    "returnUrl": "https://loja.example.com/carrinho"
  }'
{ "paymentLinkId": "pl_4a8b3c1d5e6f2a9b0c1d", "livemode": false, "active": true, "productId": "plano-pro", "amount": 12990, "currency": "BRL", "name": "Plano Pro", "description": "Assinatura mensal do Plano Pro", "imageUrl": null, "paymentCycle": "MONTHLY", "expiresInSeconds": 1800, "successUrl": "https://loja.example.com/obrigado", "returnUrl": "https://loja.example.com/carrinho", "createdAt": "2023-11-07T05:31:56Z", "updatedAt": "2023-11-07T05:31:56Z" }

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

Idempotency-Key
string
required

Chave de idempotência obrigatória para criação de saque. Mesma chave e mesmo corpo retornam o mesmo saque; mesma chave com corpo diferente retorna 409 idempotency_conflict.

Example:

"withdrawal_1001"

Request-Id
string

Identificador opcional fornecido pelo cliente para correlação. A API aceita também X-Request-Id. O valor é ecoado de volta no header de resposta Request-Id. Se nenhum dos dois é enviado, a API gera req_<24 hex>.

Example:

"req_4a8b3c1d5e6f2a9b0c1d2e3f"

Body

application/json

Payload para criar um link de pagamento a partir de um produto cadastrado.

productId
string
required

Identificador do produto (slug) cadastrado no projeto. O produto precisa estar ativo no mesmo ambiente da chave.

Required string length: 1 - 255
Example:

"plano-pro"

expiresInSeconds
integer
default:1800

Tempo de expiração, em segundos, das cobranças geradas pelo link. Entre 900 e 86400. O padrão é 1800 (30 minutos).

Required range: 900 <= x <= 86400
Example:

1800

successUrl
string<uri> | null

URL http(s) opcional para redirecionar o comprador após o pagamento. Uma string vazia equivale a não enviar.

Maximum string length: 2048
Example:

"https://loja.example.com/obrigado"

returnUrl
string<uri> | null

URL http(s) opcional para o comprador voltar sem concluir o pagamento. Uma string vazia equivale a não enviar.

Maximum string length: 2048
Example:

"https://loja.example.com/carrinho"

Response

Resposta idempotente: a mesma Idempotency-Key foi usada com o mesmo corpo. A API devolve o link já existente em vez de criar um novo.

Link de pagamento. A resposta não inclui uma URL pronta para compartilhar — apenas o paymentLinkId e os dados do link/produto. Para uma URL hospedada, use o produto hospedado do app.

Identificador do link de pagamento.

Example:

"pl_4a8b3c1d5e6f2a9b0c1d"

livemode
boolean
required

true para chaves trq_live_; false para trq_test_.

Example:

false

active
boolean
required

Indica se o link está ativo.

Example:

true

productId
string
required

Identificador (slug) do produto associado ao link.

Example:

"plano-pro"

amount
integer
required

Valor do produto em centavos de BRL.

Example:

12990

currency
enum<string>
required

Moeda do link. Hoje, sempre BRL.

Available options:
BRL
Example:

"BRL"

name
string
required

Nome do produto associado ao link.

Example:

"Plano Pro"

description
string | null
required

Descrição do produto, quando informada.

Example:

"Assinatura mensal do Plano Pro"

imageUrl
string | null
required

URL da imagem do produto, quando informada.

Example:

null

paymentCycle
string
required

Ciclo de cobrança do produto associado ao link.

Example:

"MONTHLY"

expiresInSeconds
integer
required

Tempo de expiração, em segundos, das cobranças geradas pelo link.

Example:

1800

successUrl
string | null
required

URL de redirecionamento após o pagamento, quando definida.

Example:

"https://loja.example.com/obrigado"

returnUrl
string | null
required

URL de retorno sem concluir o pagamento, quando definida.

Example:

"https://loja.example.com/carrinho"

createdAt
string<date-time>
required

Quando o link foi criado.

updatedAt
string<date-time>
required

Quando o link foi atualizado pela última vez.