Bearer pela sua API Key real (vk_live_* produção, vk_test_* sandbox). Crie a chave em https://app.dotfy.com.br/dashboard/chaves-api. Sem o header → 401. Com chave inválida/revogada → 401. Com chave sem o escopo necessário → 403 insufficient_scope.products:write./checkout/{slug}?pl=<token>) com os dados do comprador pré-preenchidos — o comprador pode editar antes de pagar.EVENT:CHARGE_PAID com o objeto purchaseLink identificando qual link foi pago (veja a pasta Webhooks).| Campo | Tipo | Obrigatório | Regras |
|---|---|---|---|
customerName | string | não | Nome do comprador. |
customerEmail | string | não | Email válido. |
customerPhone | string | não | Telefone (normalizado só-dígitos). |
customerTaxId | string | não | CPF (11 dígitos) ou CNPJ (14 dígitos) — normalizado só-dígitos. |
url retornada é o link pronto para enviar ao comprador.curl --location --globoff '/api/products/{{product_id}}/purchase-links' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerName": "Maria Silva",
"customerEmail": "maria@exemplo.com",
"customerPhone": "+5511999998888",
"customerTaxId": "12345678901"
}'{
"id": "clplink0001",
"url": "https://app.dotfy.com.br/checkout/curso-marketing-digital?pl=a1b2c3d4e5f60718293a4b5c6d7e8f901234567890abcdef",
"token": "a1b2c3d4e5f60718293a4b5c6d7e8f901234567890abcdef",
"productId": "clprodNew",
"customer": {
"name": "Maria Silva",
"email": "maria@exemplo.com",
"phone": "5511999998888",
"taxId": "12345678901"
},
"isActive": true,
"paid": false,
"createdAt": "2026-07-02T12:00:00.000Z"
}