Economize 20% hoje mesmo Use o código WELCOME ao finalizar a compra. BEM-VINDO

Monetize Without Tebex: Self‑Hosted Store with Stripe/W&#…

Leia isto antes de começar. Se você administra um FiveM/RedM servidor e planejar para vender vantagens no jogo, você deve usar Tebex. A documentação e o PLA do Cfx.re afirmam que “o uso de qualquer outra plataforma ou provedor de pagamento é proibido” para monetização de servidores. A auto-hospedagem do Stripe é adequada para fora do servidor vendas (scripts independentes, MLOs, pacotes de interface, serviços, cursos). Não vincule essas vendas a vantagens do jogo em servidores ativos.


O que você pode monetizar sem Tebex

Permitido (fora do servidor):

  • Scripts/MLOs autônomos que você licencia para autoinstalação.
  • Pacotes de textura, kits de interface de usuário, pacotes de som.
  • Consultoria, trabalho de desenvolvimento personalizado, serviços de instalação.
  • Documentação, cursos, modelos.

Evite (requer Tebex ou quebra a política):

  • Moeda do jogo, pay-to-win, caixas de saque, NFTs.
  • Fila prioritária, funções VIP, aumentos na lista de permissões vinculados ao seu servidor ativo.

Arquitetura em resumo

Meta: uma loja auto-hospedada que vende produtos digitais (scripts/MLOs) e entrega licenças automaticamente.

Pilha:

  • Frontend: Next.js (App Router), React.
  • Pagamentos: Stripe Checkout (simples) ou Payment Element + Payment Intents (fluxo personalizado).
  • Webhooks: Receber eventos, verificar assinaturas, atualizar pedidos, entregar arquivos/chaves.
  • Armazenamento/Entrega: S3/R2 + URLs assinadas; ou servidor de licença com downloads com taxa limitada.
  • Imposto/Faturas: Stripe Tax + Faturas de cobrança para B2B.

Fluxo de dados:

  1. Criar Produto + Preço em Listra.
  2. Inicie a sessão de checkout com metadados (productId, buyerId).
  3. Sobre checkout.session.concluído ou pagamento_intent.sucesso, verifique a assinatura.
  4. Marcar pedido como pago; gerar licença; criar link de download assinado; enviar o recibo e a licença por e-mail.

Configuração passo a passo

1) Higiene da conta Stripe

  • Integração completa e verificar negócios (KYC).
  • Defina o descritor da declaração, o e-mail de suporte e o URL da página da política de reembolso.
  • Habilitar Apple Pay / Google Pay; adicionar conta bancária.
  • Ligar Radar regras para verificações básicas de fraude.

2) Produtos e preços

  • Crie uma faixa Produto por script/MLO.
  • Usar Preços únicos na moeda do seu comprador (EUR/USD).
  • Adicione chaves de metadados que você precisará mais tarde: sku, slug_do_produto, política_de_licença.

3) Escolha o fluxo de pagamento

  • Listra Confira: mais rápido e compatível com SCA. Aceita carteiras, 3DS e recibos. Recomendado para a maioria das lojas.
  • Elemento de pagamento + Intenções de pagamento: mais controle; use se precisar de interface de usuário personalizada ou métodos extras.

4) Webhooks seguros

  • Criar um POSTAR /api/stripe/webhook ponto final.
  • Leia o corpo cru; não analise JSON antes da verificação.
  • Verifique com o segredo do ponto final; rejeitar se a assinatura falhar.
  • Usar idempotência para tarefas de saída que você aciona a partir de webhooks (por exemplo, criação de licença), para que as novas tentativas não dupliquem pedidos.

5) Cumprimento do pedido + licença

  • Após sucesso verificado:
    1. Criar pedidos linha com status='pago'.
    2. Gere uma chave de licença (UUID v4) ou um token de desbloqueio vinculado ao comprador.
    3. Armazene um construção imutável do zip (faça hash).
    4. Emitir um URL assinada por tempo limitado (por exemplo, 24 horas, 3 downloads).
    5. Enviar e-mail ao comprador: link da fatura, licença, botão de download.
  • Adicionar um portal do cliente página com histórico de pedidos e novos downloads.

6) Impostos, faturas e recibos

  • Ligar Imposto Stripe; marcar itens como bens digitais.
  • Colete a localização do comprador (IP + endereço de cobrança) e números de imposto (por exemplo, ID de IVA da UE).
  • Para B2C da UE, cobre o IVA de destino; para IDs de IVA B2B da UE válidos, aplique taxa zero e registre o ID.
  • Armazene os PDFs das faturas com o registro do pedido.

7) Conformidade e políticas

  • Termos de venda (escopo da licença, proibição de revenda, cláusula antifraude, remoção DMCA).
  • Reembolsos: aplicam-se as regras de venda à distância da UE, mas os downloads digitais perdem o direito de 14 dias se O comprador expressamente consente e reconhece isso antes do download. Marque uma caixa de seleção e registre o consentimento.
  • Privacidade: mantenha uma página GDPR; registre cargas úteis de webhook sem armazenar dados completos do cartão.
  • Segurança: rotacionar segredos do webhook; chaves de API de privilégios mínimos; criptografar tabela de licenças em repouso.

Implementação mínima (Next.js + Stripe Checkout)

Ação do servidor (criar sessão):

// app/api/checkout/route.ts importar Stripe de 'stripe'; const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, { apiVersion: '2024-06-20' }); exportar função assíncrona POST(req: Request) { const { sku, successUrl, cancelUrl } = await req.json(); const priceId = await mapSkuToPriceId(sku); const session = await stripe.checkout.sessions.create({ mode: 'payment', line_items: [{ price: priceId, quantity: 1 }], metadata: { sku }, success_url: successUrl, cancel_url: cancelUrl, }); retornar Response.json({ url: session.url }); }

Rota do webhook:

// app/api/stripe/webhook/route.ts
import Stripe from 'stripe';
import { headers } from 'next/headers';

export const config = { api: { bodyParser: false } } as any; // keep raw body

function buffer(body: ReadableStream<Uint8Array>) {
  const reader = body.getReader();
  const chunks: Uint8Array[] = [];
  return reader.read().then(function process({ done, value }): any {
    if (done) return Buffer.concat(chunks);
    chunks.push(Buffer.from(value));
    return reader.read().then(process);
  });
}

export async function POST(req: Request) {
  const sig = headers().get('stripe-signature')!;
  const buf = await buffer(req.body!);
  let event: Stripe.Event;
  try {
    event = new Stripe(process.env.STRIPE_SECRET_KEY!, { apiVersion: '2024-06-20' })
      .webhooks.constructEvent(buf, sig, process.env.STRIPE_WEBHOOK_SECRET!);
  } catch {
    return new Response('Bad signature', { status: 400 });
  }

  if (event.type === 'checkout.session.completed') {
    const session = event.data.object as Stripe.Checkout.Session;
    await fulfill(session); // create order, license, email
  }
  return new Response('OK', { status: 200 });
}

Dica de idempotência: quando seu webhook aciona trabalho externo (por exemplo, envio de e-mail, criação de licença), envolva essas chamadas com suas próprias Chave de Idempotência para evitar duplicatas.


Licença e entrega de arquivos

  • Vincule cada licença ao e-mail do comprador + SKU do produto.
  • Assine URLs de download; limite por tempo + tentativas; registre IPs para controle de abuso.
  • Incluir um pequeno validador de licença snippet no seu carregador de recursos para verificar a chave em relação à sua API (taxa limitada).

Controles de risco e fraude

  • Habilite 3DS/SCA via Checkout ou Intenções de Pagamento.
  • Bloqueie e-mails descartáveis e países de cobrança incompatíveis para pedidos de alto risco.
  • Mantenha modelos de evidências de disputas: descrição do produto, registros de licença, registros de download, consentimento para renúncia de conteúdo digital.

Não quebre as regras do Cfx.re

  • Use Tebex para qualquer vantagem que afete seu servidor em execução (fila prioritária, kits VIP, carros, skins).
  • Mantenha o Stripe apenas para produtos e serviços digitais fora do servidor.

Links internos (FiveMX)

Referências externas

  • Monetização e documentação somente para Cfx.re PLA + Tebex.
  • Webhooks do Stripe e verificação de assinatura.
  • Distribua chaves de idempotência e SCA.
  • Legislação do consumidor da UE: exceções ao direito de retirada de conteúdo digital.
  • Stripe Tax: bens digitais e OSS.

Lista de verificação pronta para envio

  1. Conta Stripe verificada; detalhes comerciais completos.
  2. Produtos + Preços criados; metadados definidos.
  3. API de sessão de checkout ativa; rotas de sucesso/cancelamento.
  4. Ponto de extremidade do webhook ativo; assinatura verificada; novas tentativas testadas.
  5. Cumprimento: gerador de licenças, URL de download assinada, e-mail.
  6. Impostos sobre; PDFs de faturas armazenados; validação de IVA.
  7. Páginas legais: Termos, Reembolsos, Privacidade, Licença.
  8. Logs + painéis: pedidos, erros, tentativas, disputas.
  9. Auditoria: nenhuma venda de vantagens de servidor fora da Tebex.

FAQ (curto)

  • Posso vender funções VIP com o Stripe? Sim, se você usar o Discord.
  • Posso vender meus MLOs com o Stripe? Sim, se a entrega for fora do servidor e não estiver vinculada a vantagens ao vivo.
  • Os compradores recebem reembolsos em 14 dias? Para a UE, não após consentirem com a entrega digital imediata e iniciarem o download. Registre o consentimento.
  • Qual fluxo do Stripe é melhor? Finalize a compra para maior rapidez; Intenções de pagamento se precisar de muita personalização.
Lucas
Lucas

Eu sou Luke, sou um gamer e adoro escrever sobre FiveM, GTA e roleplay. Eu administro uma comunidade de roleplay e tenho cerca de 10 anos de experiência em administração de servidores.

Artigos: 570