WysePayDocs

Criar um link de pagamento

POST
/api/v1/payment-links

Cria um checkout com o valor e a descrição. Envie a url ao cliente: ele preenche os dados, paga com Pix e vê o comprovante.

Permissão da chave: payment_links:write.

Autenticação

headerx-api-key<token>

Sua chave de API, criada no painel em Desenvolvedores → Chaves de API.

Corpo da requisição

application/json
  1. body
amountCents*integer

Valor em centavos. Mínimo de 500 (R$ 5,00).

Faixa500 <= value
description*string

O que está sendo cobrado. Aparece para o pagador.

Tamanho3 <= length <= 180
expiresAt?string

Quando o Pix (ou o link) deixa de aceitar pagamento, em ISO 8601 (ex.: 2026-12-31T23:59:00.000Z). Sem ele, vale o prazo padrão.

Formato^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatodate-time
metadata?

Dados seus (ex.: o id do pedido). Voltam iguais na consulta e nos webhooks.

maxPayments?|

Quantos pagamentos o link aceita. Omitido ou null = ilimitado; 1 = uso único.

returnUrl?|

Para onde o cliente volta depois de pagar (https). Recebe wysepay_transaction_id na URL. Confirme o pedido pelo webhook, não pelo retorno.

askAddress?boolean

O checkout pede o endereço do cliente (CEP preenche o resto).

Corpo da resposta

Link criado.

application/json
  1. response

Um link de pagamento.

id*string
url*string

Endereço do checkout para enviar ao cliente.

Formatouri
amountCents*integer
description*string
active*boolean

false depois de desativado ou esgotado.

maxPayments*|

Quantos pagamentos o link aceita. null = ilimitado; 1 = uso único.

askAddress*boolean

O checkout pede o endereço do cliente.

returnUrl*|

Para onde o cliente volta depois de pagar, com wysepay_transaction_id na URL.

metadata*|null
livemode*boolean
expiresAt*|null
createdAt*string
Formato^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatodate-time
curl -X POST "https://example.com/api/v1/payment-links" \  -H "Content-Type: application/json" \  -d '{    "amountCents": 8990,    "description": "Pedido #1042",    "metadata": {      "orderId": "1042"    },    "returnUrl": "https://loja.com.br/obrigado?pedido=1042"  }'
{  "id": "plk_01k6g8m2v4x7z9b3c5d7f9h0j2",  "url": "https://app.wysepay.com.br/checkout/pay_2sngtnj5fkcnnm1m6v39xfe5b3",  "amountCents": 8990,  "description": "Camiseta básica · Tamanho M",  "active": true,  "maxPayments": 0,  "askAddress": true,  "returnUrl": "string",  "metadata": {    "property1": null,    "property2": null  },  "livemode": true,  "expiresAt": "2026-10-04T15:30:00.000Z",  "createdAt": "2026-10-04T15:30:00.000Z"}