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:
- Criar Produto + Preço em Listra.
- Inicie a sessão de checkout com metadados (productId, buyerId).
- Sobre
checkout.session.concluídooupagamento_intent.sucesso, verifique a assinatura. - 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/webhookponto 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:
- Criar
pedidoslinha comstatus='pago'. - Gere uma chave de licença (UUID v4) ou um token de desbloqueio vinculado ao comprador.
- Armazene um construção imutável do zip (faça hash).
- Emitir um URL assinada por tempo limitado (por exemplo, 24 horas, 3 downloads).
- Enviar e-mail ao comprador: link da fatura, licença, botão de download.
- Criar
- 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)
- Visão geral da política de monetização → https://fivemx.com/terms-conditions
- Reembolso e devoluções de produtos digitais → https://fivemx.com/guarantee
- Modelo de licenciamento de script → https://fivemx.com/terms-conditions
- Remoção do DMCA → https://fivemx.com/dmca-request
- Notas de desempenho e anti-trapaça → https://fivemx.com/performance
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
- Conta Stripe verificada; detalhes comerciais completos.
- Produtos + Preços criados; metadados definidos.
- API de sessão de checkout ativa; rotas de sucesso/cancelamento.
- Ponto de extremidade do webhook ativo; assinatura verificada; novas tentativas testadas.
- Cumprimento: gerador de licenças, URL de download assinada, e-mail.
- Impostos sobre; PDFs de faturas armazenados; validação de IVA.
- Páginas legais: Termos, Reembolsos, Privacidade, Licença.
- Logs + painéis: pedidos, erros, tentativas, disputas.
- 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.






