Ajuda e API

Como usar cada tela, o PIN de suporte e a API REST do Scale.

Como usar o ForeverLink

O ForeverLink é um inventário de links numerados que podes alterar depois de imprimir. Gera IDs (1…N), imprime a URL pública do ForeverLink num QR, NFC ou sticker, e depois muda o destino HTTPS no painel, CSV, API (Scale) ou no chat de suporte.

URL pública de cada ID:

https://foreverlink.app/r/{sua-org}/{número}

Exemplo: https://foreverlink.app/r/acme/42

O identificador da URL nunca muda (as peças impressas continuam a funcionar). Só muda o destino.

---

1. Criar a conta

  1. Abre Registo ou escolhe um plano em Preços.
  2. Starter ($19/mês, 500 IDs), Growth ($49/mês, 5.000) ou Scale ($99/mês, 25.000 + API). White Label é licença única de $999.
  3. Nome da organização. O identificador da URL (parte de cada URL impressa) é gerado aí e não se pode mudar depois.
  4. Email e palavra-passe. O 2FA (Google Authenticator / Authy) é opcional — ativas depois em Definições.
  5. Completa o checkout Paddle (é preciso cartão). Tens 15 dias de teste. Cancela antes e não pagas.
  6. Enquanto o billing não estiver trialing ou active, os QR públicos não redirecionam.

---

2. Os primeiros 15 minutos

  1. Entra em /login → aterrass no Inventário.
  2. Abre Gerar intervalo e cria IDs 1 a 100.
  3. Abre Atribuir intervalo e põe um destino para 1–20, com uma etiqueta tipo loja-frente.
  4. Abre o ID #1 e descarrega o QR SVG. Esse QR aponta para a URL ForeverLink, não para o site final.
  5. Digitaliza. Deves cair no destino. Se vires “não configurado”, esse ID não tem destino http(s) ou está inativo.
  6. Muda o destino de #1 e digitaliza outra vez: o mesmo QR, página nova.

---

3. Inventário

Lista de todos os IDs da organização ativa.

  • Pesquisa por número, etiqueta, destino ou notas.
  • Filtros: todos / nunca clicados / sem destino / ativos / inativos.
  • Ordenação: número ou cliques.
  • Cada linha é uma URL pública: /r/{org}/{número}.

Clica numa linha para editar esse ID.

---

4. Novo ID

Cria um único número de stock.

  1. Deixa o número vazio para o próximo livre, ou escreve um que ainda não exista.
  2. Opcional: destino (https://…), etiqueta, notas, estado (ativo / inativo).
  3. Guarda. Conta para o teto max_links do plano.

Para um sticker avulso. Para uma tiragem, usa Gerar intervalo.

---

5. Gerar intervalo

Cria IDs vazios num intervalo inclusivo (exemplo: 1 a 1000).

  • Números existentes são ignorados.
  • Os novos saem ativos e sem destino.
  • Não pode ultrapassar o teto do plano.

Faz isto antes de enviar ficheiros à gráfica.

---

6. Atribuir intervalo

Escreve o mesmo destino, etiqueta e estado num from–to que já existe.

Usos típicos: apontar 1–50 ao menu deste mês; relabelar o lote de um cliente; desligar uma campanha (inactive).

O destino tem de ser http:// ou https:// com host, máximo 2048 caracteres.

---

Abre o ID no inventário. Podes mudar destino, etiqueta, notas e estado.

  • Destino vazio = a URL pública diz “não configurado”.
  • active redireciona; inactive não.
  • Vês cliques, últimos 14 dias e histórico.

Descarrega aqui o QR de produção (SVG). Imprime sempre esse QR, nunca um QR da URL final.

---

8. Importar e exportar CSV

Exportar descarrega o inventário (filtro opcional por etiqueta).

Importar atualiza linhas. Colunas típicas: number, target_url, label, notes, status. URLs inválidas são rejeitadas. Respeita max_links.

---

9. Cliques e histórico

Cada redirect público bem-sucedido incrementa click_count e um contador diário.

Alertas: IDs ativos sem destino; IDs nunca digitalizados.

O histórico guarda quem mudou o quê, com origem: manual, import, intervalo, API ou chat.

---

10. Equipa

FunçãoPode
OwnerTudo, incluindo billing, PIN e chaves API
AdminDefinições, equipa, PIN, chaves API, inventário
OperatorAtribuir destinos, intervalos, importar

Adiciona um membro em Equipa com palavra-passe temporária (mín. 12).

---

11. Definições

  • Renomear o nome visível (não o identificador da URL).
  • Ativar 2FA.
  • Definir o PIN de suporte (6–8 dígitos). WhatsApp / Telegram / chat web pedem o identificador da URL ou o e-mail + este PIN uma vez.
  • Rodar o PIN ou desvincular chats.
  • Chaves API (só Scale e White Label): criar, copiar uma vez, revogar.

---

12. Faturação

15 dias de teste com cartão via Paddle. Redirects públicos funcionam em trialing, active, past_due ou whitelabel_setup. O bot não muda o cartão.

---

13. Tickets de suporte

Na app: Suporte. No chat: depois do PIN, pede ao bot para abrir um ticket.

---

14. Chat (WhatsApp, Telegram, web)

  1. Owner/admin define o PIN em Definições.
  2. Escreve ao bot ForeverLink.
  3. Indica o identificador da URL (ou o e-mail de um membro) e o PIN.
  4. Pede, por exemplo, “aponta o #12 para https://exemplo.com/menu”.

Nunca envies a palavra-passe do painel nem códigos 2FA.

---

15. API (Scale e White Label)

REST em {APP_URL}/api/v1. Cria uma chave em Definições. Mostra-se uma vez.

Authorization: Bearer fl_live_…

ou `X-API-Key: fl_live_…`

A chave já está ligada à **tua** organização.

| Scope | Permite |
| --- | --- |
| `account:read` | `GET /me`, `GET /stats` |
| `links:read` | `GET /links`, `GET /links/{number}` |
| `links:write` | criar / atualizar / intervalos |
| `tickets:write` | `GET/POST /tickets` |

**`GET /api/v1/me`** — identificador da URL, plano, limites, faturamento, uso.

**`GET /api/v1/links`** — `q`, `label`, `status`, `filter`, `page`, `per_page`, `sort`.

**`GET /api/v1/links/{number}`** — detalhe, cliques 14 dias, revisões.

**`POST /api/v1/links`**

{ "number": 42, "target_url": "https://exemplo.com", "label": "loja", "status": "active" }

**`PATCH /api/v1/links/{number}`** — qualquer subconjunto de `target_url`, `label`, `notes`, `status`.

**`POST /api/v1/links/assign-range`** — `{ "from": 1, "to": 50, "label": "abril", "target_url": "https://…", "status": "active" }`

**`POST /api/v1/links/generate-range`** — `{ "from": 1, "to": 500 }`

**`GET /api/v1/stats`** · **`GET/POST /api/v1/tickets`**

Erros: `401` chave inválida, `402` billing inativo, `403` plano/scope, `404` inexistente, `429` rate limit (60/min). Starter e Growth recebem `403`.

---

## 16. Porque um QR não redireciona

1. A URL impressa é `https://foreverlink.app/r/{org}/{número}`.
2. O ID existe e está `active`.
3. O destino é `http(s)` válido.
4. O billing está `trialing` / `active` / `past_due`.

---

## 17. White Label

Licença de software de $999. Depois do pagamento, preencha o formulário de configuração (domínio + notas de self-host). Corra no seu servidor, ou some SaaS alojado por +$50/mês. Inclui API, documentação e suporte de produto. Não é um projeto de instalação pago.

Acima de 25.000 IDs no Scale vende-se como **packs de 5.000 IDs** a $19/mês. Some no checkout ou em Faturação.

Precisas de uma pessoa? [Contacto](/contact) ou abre um ticket na app.
Testar 15 dias
grátis