Vitrin Digital — Manual da Plataforma

Guia para donos de organizações que utilizam a Vitrin Digital para processar pagamentos.


1. Acessando o Painel

Acesse https://vitrin.digital/login com o email e senha cadastrados no signup.

Após o login, você será redirecionado ao Dashboard com o resumo da sua operação.


1.5. Suas chaves de API

Ao criar sua conta, você recebe 2 chaves:

ChavePrefixoQuando funcionaConecta a
Produçãovd_live_*Após aprovação pela equipe Vitrin + contratos assinadosProcessador real (dinheiro real)
Sandbox (teste)vd_test_*Imediatamente — mesmo antes da aprovaçãoSimulação (sem dinheiro real)

Sandbox: teste antes de operar

Enquanto aguarda a aprovação do seu cadastro, você pode usar a chave vd_test_* pra integrar e testar toda a API:

  • Criar clientes, gerar cobranças (Pix, boleto, cartão), configurar webhooks
  • Tudo funciona igual à produção, mas sem mover dinheiro real
  • Ideal pra validar a integração e ter tudo pronto antes de ir pro ar

Onde encontrar suas chaves

  • No momento do cadastro: ambas as chaves são exibidas na resposta. Anote a vd_live_* — ela é mostrada apenas uma vez.
  • No dashboard: acesse Configurações (/dashboard/settings/) pra consultar.
  • Rotacionar: se uma chave for comprometida, regenere em Configurações (requer PIN).

Fluxo de ativação

  1. Cadastro — você preenche dados pessoais/empresa, endereço, conta bancária de repasse e PIN. Status "Aguardando revisão". Sua chave vd_test_* já funciona.
  2. Envie documentos — aba Onboarding. RG/CNH e Contrato Social (se CNPJ).
  3. Equipe Vitrin revisa — aprova ou solicita ajustes por email.
  4. Ativação — status "Ativa". Sua chave vd_live_* é enviada por email (uma única vez). Assine os contratos comerciais em /dashboard/contract.
  5. Checklist pós-aprovação — um widget aparece no Overview com 4 passos pra você operar: conta bancária ✓ (vem do signup), webhook, primeiro plano/produto, primeira cobrança.
  6. Operação — cobre via vd_live_*.

Dica pra vibecoders: cole o conteúdo de https://vitrin.digital/llms-full.txt no seu LLM favorito (Claude, Cursor, etc.) e peça pra ele fazer a integração. Mais detalhes em https://vitrin.digital/docs/llm.

SDKs oficiais

Se o seu (ou o do seu time) backend é Node ou Python, instale o SDK oficial em vez de chamar a API com fetch/requests cru — vem com retry, erros tipados e validação de webhook prontos.

  • Node.js: npm install @vitrindigital/node (npmjs)
  • Python: pip install vitrin (pypi)

Exemplos completos no guia de integração ou nos READMEs em sdk/node/ e sdk/python/.


2. Dashboard (Overview)

A página inicial mostra:

  • MRR — Receita recorrente mensal (soma dos planos ativos)
  • Assinaturas ativas — Quantos clientes assinam planos
  • Volume do período — Total cobrado no período selecionado (7d / 30d / 90d)
  • Churn — Taxa de cancelamento de assinaturas
  • Mix de pagamento — Distribuição entre Pix, Cartão e Boleto
  • Transações recentes — Últimas cobranças com status

Banners de status

Dependendo do estado da sua conta, banners informativos aparecem no topo do dashboard:

  • Aguardando revisão (azul) — "Seu cadastro está em análise". Inclui orientação pra usar a vd_test_* pra integrar enquanto aguarda, com links pra documentação.
  • Onboarding (amarelo) — conta aprovada pela equipe Vitrin, aguardando verificação documental pelo processador. Envie os documentos pela aba Onboarding.
  • Cadastro não aprovado (vermelho) — seu cadastro não foi aprovado. Contate contato@vitrin.digital.

Os banners desaparecem automaticamente quando sua conta é ativada.


3. Transações

Lista todas as cobranças da sua organização com filtros:

  • Status: Pendente, Confirmado, Recebido, Vencido, Reembolsado, Chargeback
  • Tipo: Pix, Cartão, Boleto
  • Data: De / Até

Ações disponíveis

  • Clicar na transação → Modal com detalhes completos (valores, taxas, dados Pix/boleto)
  • Reembolsar → Reembolso parcial ou total (requer PIN)
  • Cancelar → Cancela cobranças pendentes
  • Dossiê de defesa → Gera relatório completo com evidências para contestar chargebacks

4. Assinaturas

Gerencie assinaturas recorrentes vinculando clientes a planos. Esta seção é o coração da operação pra negócios baseados em mensalidade — cobrança recorrente sem fricção pro cliente, controle de inadimplência e visibilidade do MRR.

4.1. Lista, filtros e busca

Na página Dashboard → Assinaturas você vê todas as assinaturas da sua org com:

  • Cliente + ID (cópia rápida)
  • Plano
  • Valor cobrado por ciclo + badge:
    • personalizado (teal) — assinatura usa preço diferente do plano (ver 4.3)
    • do plano (cinza) — usa o preço padrão do plano
  • Tipo (PIX, Cartão, Boleto)
  • Status (Ativa, Inadimplente, Pendente, Cancelada, Expirada)
  • Criado

Filtros disponíveis na toolbar acima da lista:

  • Busca — nome, email ou CPF/CNPJ do cliente (350ms de debounce)
  • Situação — filtra por status
  • Plano — só assinaturas do plano selecionado
  • PreçosTodos / Personalizados / Do plano

Combine filtros para auditar contratos B2B Enterprise, identificar inadimplência por plano específico, ou bater carteira de bolsistas.

Clique em qualquer linha para abrir o painel de detalhes (ver 4.4).

4.2. Criar uma assinatura individual

Botão "Nova assinatura" abre o formulário:

  1. Cliente — busca pelos clientes já cadastrados na sua org
  2. Plano — busca pelos planos ativos
  3. Preço personalizado (opcional) — ver seção 4.3
  4. Forma de pagamento — PIX, Cartão ou Boleto (depende do que sua org permite em Configurações)
  5. Token do cartão (opcional, só Cartão) — se você já tem o token tokenizado, cola aqui; senão, deixa vazio e o link de cobrança aparece após criar

Se o cliente paga com cartão sem token, um link aparece pra você copiar e mandar pro cliente ativar a assinatura inserindo o cartão.

4.3. Preço personalizado por contrato

Esta funcionalidade é o que permite um mesmo plano cobrar valores diferentes por contrato, sem precisar criar dezenas de planos.

Ative o toggle "Preço personalizado para este contrato" no formulário de nova assinatura. Você verá:

  • Preço padrão do plano (referência)
  • Campo valor cobrado por ciclo — substitui o preço do plano só pra esta assinatura
  • Aviso âmbar: "Após criada, alteração de valor exige cancelar e recriar a assinatura" (workflow descrito em 4.5)

Quando usar:

  • B2B Enterprise — cada cliente fechou um valor diferente
  • Bolsa escolar / desconto fidelidade — mesmo plano, preço reduzido
  • Condomínio — valor por unidade (fração ideal)
  • Loja maçônica / clube — mensalidade base + FAM por idade do membro
  • Doação recorrente / dízimo — apoiador define o valor que vai dar

💡 Pra valor que muda toda cobrança (consumo medido, mensalidade + extras variáveis), use PIX Automático — explicado na seção dedicada do manual. Subscription com preço personalizado é pra valor estável (revisão raramente, ex: anual).

4.4. Detalhe da assinatura

Clicar numa linha abre o painel com:

  • Valor por ciclo — destaque do valor cobrado, com discriminação:
    • Plano padrão — quanto o plano cobra de quem não tem override
    • Sobrescrito — o valor personalizado, quando há (badge teal)
  • Forma de pagamento, próxima cobrança, datas, IDs (Vitrin + provedor) com cópia rápida
  • Cancelar assinatura — interrompe a recorrência
  • Alterar valor — workflow descrito em 4.5

4.5. Alterar valor de uma assinatura ativa

A integração com o provedor não suporta atualizar o valor de uma assinatura já ativa diretamente. Pra mudar o valor, a Vitrin executa o seguinte na ordem:

  1. Cria nova assinatura no provedor com o novo valor
  2. Cancela a assinatura antiga
  3. Atualiza o registro local — o ID interno (Vitrin) é preservado, só o ID no provedor muda

No painel: botão "Alterar valor" no detalhe da assinatura. Modal pede o novo valor + motivo (vai pro audit). Vazio remove o override e volta ao plano padrão.

O que muda pro cliente:

  • PIX Automático: nada visível — próxima cobrança sai com novo valor
  • Cartão: token do cartão pode precisar ser revalidado dependendo do provedor; o link de cobrança nova aparece após confirmar

Quando usar:

  • Reajuste IGPM anual de aluguel
  • Mudança de tier de cliente B2B
  • Alteração da cota FAM por mudança de idade
  • Aplicação de desconto de retenção

4.6. Importar assinaturas em massa (CSV)

Pra onboarding de uma carteira inteira (loja maçônica com 200 membros, escola com 80 alunos, condomínio com 60 unidades), use "Importar CSV" no header da página.

Passo 1. Baixe o template — colunas:

ColunaObrigatória?Descrição
cpf_cnpjsimIdentifica/cria o Customer (upsert)
namesimNome do cliente
emailsimEmail único do cliente
phonenãoTelefone do cliente
plan_slugsimSlug do plano (visível na lista de planos)
billing_typesimPIX, CREDIT_CARD ou BOLETO
amount_overridenãoPreço personalizado (vazio = preço do plano)

Passo 2. Preencha o CSV. Limite 500 linhas por lote.

Passo 3. Volte e clique "Importar CSV" → arquivo. A pré-visualização mostra 50 linhas; confirme.

Resultado mostra:

  • Criadas — assinaturas novas que entraram no provedor
  • Já existiam — pulou porque o cliente já tem assinatura ativa pra esse plano (não duplica)
  • Erros — tabela com linha + CPF + motivo (ex: plano não encontrado, billing_type inválido)

Cada linha é processada independente — uma falhar não derruba as outras.

4.7. Exportar assinaturas (CSV)

Botão "Exportar" baixa um CSV com a listagem atual (respeita os filtros aplicados). Colunas:

subscription_id, customer_cpf_cnpj, customer_name, customer_email, plan_slug, plan_name, plan_price, amount_override, effective_amount, billing_type, status, created_at, canceled_at, provider_subscription_id.

Util pra reconciliação contábil, importação em ERP, e auditoria externa.

4.8. Cancelar uma assinatura

Botão Cancelar no card da lista ou no detalhe abre confirmação. Após confirmar:

  • Status passa pra canceled localmente
  • A próxima cobrança recorrente não acontece
  • Histórico de transações antigas continua íntegro

5. Planos

Defina os planos que seus clientes podem assinar.

Campos básicos

  • Nome, preço, ciclo — semanal, quinzenal, mensal, bimestral, trimestral, semestral, anual
  • Descrição — texto curto exibido no checkout
  • Ativo/Inativo — desative sem excluir
  • Features — tags descritivas do que o plano inclui
  • Capa — URL de imagem exibida na página pública do checkout

Trial e cobranças avançadas

Acessível pelo bloco "Trial e cobranças avançadas" ao criar/editar:

CampoFunção
Dias de testeAtrasa a primeira cobrança (ex.: 7). Cliente entra ativo sem pagar nada. 0 desativa o trial.
Valor do trialValor cobrado durante o período de teste. Hoje suportamos apenas trial gratuito (R$ 0,00); trial pago entra em rodada futura.
Máximo de ciclosCancela a assinatura após N cobranças. 0 = renovação indeterminada.
Taxa de adesãoCobrança única adicional na primeira mensalidade (setup fee).
URL da capaImagem 1200×600 recomendada para o checkout público.

Compartilhar checkout

Cada plano gera um link público. No card do plano clique em "Copiar link" — formato https://vitrin.digital/c/<sua-org>/<slug-do-plano>. Compartilhe esse link e o cliente assina sem precisar de conta.


6. Produtos

Para vendas avulsas (não recorrentes), com 4 tipos:

TipoQuando usar
Pagamento únicoCurso, ebook, evento — um valor fixo
PacoteN unidades por um preço (ex.: 5 eventos por R$ 1.297)
CréditosSaldo consumível (créditos para uma plataforma sua)
ContribuiçãoDoação, gorjeta, "pague quanto quiser" — pagador define o valor
ComboBundle de outros produtos com preço promocional

Modo de preço

Independente do tipo (exceto Contribuição, que sempre usa "pagador escolhe"):

  • Preço fixo — você define, o cliente paga exatamente isso.
  • Pagador escolhe o valor — cliente digita no checkout. Use para apoio voluntário em qualquer tipo. Configure valor mínimo (piso aceito) e valor máximo (teto opcional). O preço informado vira sugestão pré-preenchida.

Exemplo: produto "Apoie meu canal" tipo Pagamento único + modo Pagador escolhe + mínimo R$ 5 + sugestão R$ 25.

Página de venda & checkout

Bloco expansível com campos pra rica conversão:

CampoFunção
Descrição longaTexto rico exibido na página pública (markdown suportado)
URL da capaBanner do produto
URL do vídeoYouTube/Vimeo embed exibido inline
URL após pagamentoCliente é redirecionado pra cá quando o pagamento é aprovado (área de membros, download, etc.)
Permitir parcelamentoDesative pra forçar à vista mesmo em cartão
Máximo de parcelasLimite por produto (1–21x), respeitando o teto da org

Compartilhar checkout

Botão "Copiar link" no card do produto — https://vitrin.digital/c/<sua-org>/<slug-do-produto>. Compartilhe na bio, em campanhas de email, em anúncios.


6.0.1. Combo (bundle de produtos)

Combine vários produtos seus em uma única venda com preço promocional.

Como funciona:

  1. Crie os produtos individuais primeiro (Pagamento único, Pacote, etc.).
  2. Crie um novo produto tipo Combo, definindo o preço total do combo (geralmente menor que a soma individual).
  3. Salve, depois adicione os produtos incluídos no combo (com quantidade por item).
  4. Compartilhe o link do combo. O pagador vê a lista de produtos incluídos com a economia em destaque ("De R$ X por R$ Y").
  5. Após o pagamento, um Order parent registra a receita + N child Orders (unit_price=0, marcados via metadata.bundle_parent_id) para você provisionar entrega individual de cada item via webhook.

Bundle não suporta valor aberto — o preço promocional é fixo e definido pela org.

Aninhamento não permitido — um combo não pode incluir outro combo.


6.1. Order Bumps

Ofertas adicionais que aparecem no checkout do produto principal.

Order Bumps → Novo bump:

CampoFunção
Aparece no checkout deProduto principal cujo checkout exibirá a oferta
Produto adicionalItem complementar que será oferecido
Título da ofertaEx.: "Adicione o ebook complementar"
DescriçãoTexto curto explicando o benefício
Desconto sobre o preço original% aplicado em cima do preço do produto adicional

No checkout, o cliente vê uma checkbox com a oferta. Múltiplos bumps podem ser aceitos no mesmo checkout — cada um entra no total. Quando o pagamento é confirmado, o Order parent registra a receita total e cada bump aceito gera um child Order separado (marcado via metadata.parent_order_id), permitindo provisionamento independente via webhook.

Exemplo: cliente comprando "Curso Pro (R$ 297)" recebe a oferta "Adicione o e-book de bônus por R$ 19 (de R$ 47)". Aceitando, paga R$ 316 em uma transação só.


6.2. Cupons

Códigos de desconto aplicáveis no checkout público.

Cupons → Novo cupom:

CampoFunção
CódigoToken digitado pelo cliente (ex.: BLACKFRIDAY). Único por organização, case-insensitive.
TipoPercentual (10%) ou Valor fixo (R$ 50)
Valor do descontoConforme o tipo
ValidadeData limite. Vazio = sem prazo
Limite de usosQuantos clientes podem usar. 0 = ilimitado
Compra mínimaValor mínimo da venda para o cupom valer

O contador times_used é atualizado automaticamente a cada uso bem-sucedido. Cupons podem ser limitados a planos/produtos específicos via API (a UI dá escopo global por enquanto).


6.3. Programa de Afiliados

Transforme clientes, parceiros e creators em uma rede que vende para você em troca de comissão por venda atribuída. Mesmo modelo de Hotmart e Kiwify: o afiliado se cadastra na Vitrin, pede para promover seu produto, recebe um link único e ganha comissão automática a cada venda que vier desse link.

Acesse em Dashboard → Afiliados.

6.3.1. Ligar o programa

Na página inicial Afiliados → Programa, ligue a chave "Programa ativo" e ajuste:

CampoFunção
Janela de atribuiçãoQuanto tempo (7 a 90 dias) o clique do afiliado conta pra uma venda. Padrão 30 dias. Modelo "last-click": se o cliente clicar em mais de um afiliado, vale o último.
Comissão default — primeira venda% aplicada quando o produto/plano não define comissão própria.
Comissão default — renovaçõesPra planos. Em branco, usa a comissão da primeira venda.
Exigir aprovação manualQuando ligado, cada pedido de afiliação fica pending até você aprovar. Recomendado para programas curados.
Listar publicamente no marketplaceQuando ligado, seus produtos aparecem para qualquer afiliado descobrir no marketplace público da Vitrin. Quando desligado, só convidados acessam.

A taxa Vitrin que sua loja paga não muda quando você liga o programa. A comissão do afiliado sai do líquido da sua venda — exatamente o que Hotmart e Kiwify fazem.

6.3.2. Configurar por produto / plano

A comissão pode ser diferente para cada item. Em Afiliados → Configurar por produto/plano, clique em Configurar ao lado do item:

CampoFunção
Afiliação habilitadaLiga ou desliga o item no marketplace.
Comissão% sobre o preço do produto. Em planos, há dois campos: primeira venda + renovação.
Cap de renovações com comissão(Planos) Limita por quantas renovações o afiliado continua ganhando. Em branco = vitalícia enquanto a assinatura existir.
Auto-aprovar afiliadosPedidos pra este item específico viram aprovados sem moderação — útil pra produtos de baixo risco.
Limite de afiliadosQuantos afiliados podem promover este item ao mesmo tempo.

Cartão parcelado: a comissão é calculada sobre o preço do produto, não sobre o que o cliente paga com juros. Os juros de parcelamento são receita exclusiva da plataforma e nunca compõem a base da comissão.

6.3.3. Aprovar afiliados

Em Afiliados → Pedidos de afiliação você vê todos os pedidos por status:

  • Aguardando: você aprova, rejeita ou ajusta a comissão personalizada.
  • Aprovado: o afiliado já consegue criar links no painel dele.
  • Rejeitado: o afiliado vê o motivo (se preenchido).
  • Revogado: você cortou um afiliado que tinha sido aprovado. Comissões já liquidadas não voltam — mas novas vendas dele não geram mais comissão.

Na hora de aprovar, dá pra sobrescrever a comissão só pra este afiliado (parceiros estratégicos, influencers maiores etc) sem mexer no padrão do produto.

6.3.4. Relatório

Em Afiliados → Relatório de comissões você acompanha:

  • Liquidada: comissão que já caiu na carteira dos afiliados.
  • Pendente: comissão registrada mas ainda não liquidada (cobrança em processamento).
  • Estornada: comissões revertidas por chargeback ou refund.
  • Por produto/plano: ranking dos itens que mais geram comissão.
  • Comissões recentes: lista das últimas 200, com loja, item, valor de venda, % aplicada, valor de comissão e status.

6.3.5. Estornos e chargebacks

Se uma venda com comissão for estornada (refund manual ou chargeback do cliente), a Vitrin reverte a comissão proporcionalmente:

  • Refund total → 100% da comissão revertida.
  • Refund parcial (ex: 50%) → 50% da comissão revertida.

Se o afiliado já tinha sacado, o saldo dele fica negativo e é compensado no próximo repasse automático. Você nunca precisa cobrar do afiliado — a Vitrin opera essa conciliação.

6.3.6. Webhook

Toda cobrança atribuída a um afiliado traz um bloco affiliate no webhook que sua loja recebe (configurado em Dashboard → Configurações → Webhook). O bloco carrega o slug do afiliado, o valor da comissão e o status atual (pending / settled / reversed).

Use isso para:

  • Acionar régua de relacionamento com afiliados que vendem (e-mail de parabéns, ranking interno).
  • Reconciliar receita do programa de afiliação contra seu BI.
  • Notificar afiliados em canais externos (Telegram, Discord).

O formato exato e a lista de campos está no Guia de Integração.

6.3.7. Coprodutores

Coprodutor é diferente de afiliado: é parceiro fixo de um produto específico (ex: editora que dividiu o lançamento, instrutor que co-criou o curso). Não tem janela de atribuição — o split sempre vale, em toda venda do produto.

Coprodutores são cadastrados pela Vitrin (entre em contato com o suporte para incluir). Quando cadastrados, você associa cada um a um produto pelo painel ou via API, definindo se o split é por percentual (ex: 20% sobre cada venda) ou valor fixo (ex: R$ 5,00 por venda).

Coprodutor é fora do escopo de auto-serviço nessa primeira versão — abra um chamado para configurar.


7. Pedidos

Cada venda de produto gera um pedido com ciclo de vida:

Pendente → Pago → Entregue

  • Pedidos são marcados como Pago automaticamente via webhook quando o pagamento é confirmado
  • Use o botão Entregar para marcar como entregue

8. Clientes

Cadastro dos pagadores com:

Identidade

  • Nome completo (obrigatório)
  • CPF/CNPJ (obrigatório) — quando CNPJ, o campo "Razão social" aparece automaticamente no lugar de "Data de nascimento"
  • Email
  • Telefone
  • Data de nascimento (PF) ou Razão social (PJ)

Endereço com auto-preenchimento por CEP

Ao digitar o CEP e sair do campo, a Vitrin consulta o ViaCEP e preenche automaticamente: endereço, bairro, cidade, UF (e complemento, quando o CEP retorna). Você ajusta número, complemento e qualquer detalhe que faltar.

Campos disponíveis: CEP, Endereço, Número, Complemento, Bairro, Cidade, UF.

Observações internas

Campo livre não exibido ao cliente — use para registrar histórico, preferências, etc.

Custom data

Quando você usa campos customizados no checkout público (seção 14), as respostas do cliente ficam guardadas em Customer.custom_data (JSON, acessível via API).

Sincronizado automaticamente com o processador de pagamentos.

Cartão salvo & One-click buy

Cada cliente pode ter um cartão preferido salvo no cofre PCI do processador para cobranças one-click (recompra, planos avulsos, upgrade de produto sem reabrir o checkout). Salvar um novo cartão substitui o anterior.

Quando ativar

  • Recompra — produtos consumíveis, refis, planos de uso esporádico
  • Recorrência fora de assinatura — você cobra valores diferentes a cada vez (consultoria, atendimento, mensalidade variável)
  • Checkout 1-clique pelo seu próprio site — cliente logado clica "Comprar" e a cobrança sobe sem reabrir formulário de cartão

Para recorrência fixa (valor + cadência iguais todo mês), prefira Assinaturas (seção 4) — elas já cuidam do agendamento.

Como o cliente salva o cartão

No checkout hospedado, aparece automaticamente um checkbox "Salvar este cartão para próximas compras" abaixo do CVV. O cliente marca, paga, e o cartão fica guardado. Quando ele voltar (match por email + CPF), o checkout mostra "Pagar com Visa ••••1234 — 1 clique" no topo.

Você pode desativar o checkbox por org em Configurações → Checkout → Permitir salvar cartão.

Se o seu fluxo de checkout for próprio (não usa o hospedado), salve via API — veja docs/INTEGRACAO.md §3.7. O consent.accepted_at e consent.ip são obrigatórios.

Pra cobrar o cliente sem cobrar pela API, gere um link de recompra: em Clientes → [cliente] → Cartão salvo, clique em "Link de recompra 1-clique", escolha produto ou plano, valor opcional (deixa em branco pra usar o preço cadastrado) e número de parcelas.

A Vitrin emite uma URL assinada de 15 minutos, uso único:

https://vitrin.digital/c/loja/produto-x/oneclick?t=eyJhbGciOi...

Mande por email/WhatsApp. O cliente abre, vê o cartão salvo + valor, clica "Pagar — 1 clique" e a cobrança roda sozinha (cria pedido, calcula taxa, dispara webhook, redireciona pro URL de obrigado configurado no produto).

Diferenças pra outras formas de cobrar:

Pra quêTTLQuem cobra
Link de gestão (24h)Cliente ver/remover o próprio cartão24h— (visualização)
Link de recompra (15min)Cliente clicar e pagar item específico15min, uso únicoCliente
POST /charges/charge-saved/Você cobra pela API direto (sem interação)Loja

Quando usar cada um:

  • Recompra agendada com confirmação (refil de assinatura, upgrade de plano) → link de recompra
  • Cobrança totalmente automática sem clique do cliente (subscription renewal, upgrade pago invisível) → charge-saved
  • Cliente perdido / precisa atualizar cartão → link de gestão

No painel, em Clientes → [cliente] → Cartão salvo, clique em "Link de gestão (24h)". A Vitrin emite uma URL com token assinado de 24h:

https://vitrin.digital/customer/cards/eyJhbGciOi...

Envie esse link por email (assinatura de plano, confirmação de compra) ou exiba na sua página de minha-conta. Nessa URL o cliente vê bandeira + últimos 4 e pode remover o próprio cartão sem precisar falar com o suporte.

Cobrança one-click pela API

POST /api/v1/charges/charge-saved/
{ "customer_id": "...", "amount": 99.90 }

Retorna uma Transaction como se você tivesse cobrado pelo /checkout/pay/. Sem digitar cartão, sem CVV, sem formulário.

CVV não é solicitado em cobrança com cartão salvo. Isso é parte do one-click. Para valores altos ou clientes sensíveis a fraude, prefira /checkout/pay/ com cartão fresco + 3DS.

Quando o cartão é removido

  • Cliente final clica em "Remover" no link de gestão
  • Você chama DELETE /api/v1/customers/{id}/saved-card/

Cartão expirado não é removido automaticamente — você recebe 422 card_expired na próxima tentativa de cobrança e deve pedir ao cliente para registrar um novo.

Texto sugerido para sua política de privacidade

Cole o trecho abaixo na sua política (ajustando o nome da loja):

Cartões salvos. Quando você opta por salvar seu cartão para próximas compras, armazenamos junto ao nosso processador de pagamentos uma referência (token) ao seu cartão — nunca o número completo. Esse token é exclusivo da {NOME DA LOJA} e não pode ser usado por nenhuma outra empresa. Você pode revogar esse consentimento a qualquer momento removendo o cartão na sua página de cliente ou solicitando à {NOME DA LOJA}. Registramos a data, hora e endereço IP do seu aceite para fins de prestação de contas (Art. 8º, §1º LGPD).


9. Antecipação

Receba antes do prazo padrão (D+30 cartão → D+2 útil).

  • Elegíveis — Transações recebidas que podem ser antecipadas
  • Simular — Veja a taxa antes de solicitar
  • Solicitar — Requer PIN de segurança

A antecipação pode ser desabilitada pelo administrador da plataforma.


10. Pix Automático

Cobre seus clientes de forma recorrente via Pix, sem precisar de cartão. O cliente autoriza uma única vez via QR Code no app bancário e a partir daí você gera as cobranças mensais (ou na frequência escolhida) sem nova interação dele.

Disponibilidade: o Pix Automático precisa estar habilitado pelo administrador da plataforma e ativado por você em Configurações → Métodos de pagamento. Sua conta de pagamentos também precisa estar com a aprovação geral concluída.

Como funciona

  1. Você cria uma autorização informando cliente, frequência (semanal, mensal, trimestral, semestral ou anual) e o valor da primeira cobrança.
  2. A Vitrin gera um QR Code de aceite que você compartilha com o cliente.
  3. O cliente escaneia no app bancário e autoriza a primeira cobrança + as recorrências.
  4. A autorização passa de Aguardando aceite para Ativa.
  5. Você gera cada cobrança recorrente em Nova cobrança dentro da autorização. Cada cobrança precisa respeitar o prazo do Banco Central: vencimento entre 2 e 10 dias úteis no futuro.
  6. O cliente é debitado automaticamente na data combinada — sem precisar abrir o app.

Criando uma autorização

Pix Automático → Nova autorização

CampoObrigatórioObservação
ClienteSimCliente já cadastrado
Identificador externoSimSeu código de contrato (até 35 caracteres)
FrequênciaSimSemanal / Mensal / Trimestral / Semestral / Anual
InícioSimQuando começa a vigência
TérminoNãoVazio = prazo indeterminado
Valor fixoNãoTrava o valor para todas as cobranças. Vazio = valor variável
DescriçãoNãoAté 35 caracteres
Valor da primeira cobrançaSimCobrança vinculada ao QR Code de aceite

Após criar, a Vitrin mostra o QR Code e o copia-e-cola para você compartilhar com o cliente.

Status da autorização

StatusSignificado
🟡 Aguardando aceiteCliente ainda não escaneou o QR Code
🟢 AtivaCliente aceitou — você pode gerar cobranças
⚪ CanceladaCancelada por você ou pelo cliente
🔴 RecusadaO banco do cliente recusou
⚪ ExpiradaCliente não escaneou no prazo

Gerando cobranças recorrentes

Para autorizações Ativas, clique no ícone + e informe:

  • Valor (bloqueado se a autorização tem valor fixo)
  • Vencimento — entre 2 e 10 dias úteis no futuro
  • Descrição opcional

A cobrança aparece em Transações com tipo Pix Automático. Quando o débito é efetuado, o status muda para Recebido automaticamente via webhook.

Status da cobrança (instrução)

StatusSignificado
AguardandoCriada na Vitrin, ainda não enviada ao SPI
AgendadaAgendada no SPI, aguardando data de débito
ConcluídaPagamento realizado
CanceladaCancelada antes do débito
RecusadaSaldo insuficiente, divergência ou outro motivo

Cancelando uma autorização

Clique no ícone X ao lado da autorização. Requer PIN. Após cancelada, novas cobranças não podem ser geradas, mas as cobranças já agendadas seguem o ciclo normal.

Sincronizar com o processador

Se quiser forçar uma atualização do status (sem aguardar webhook), abra os detalhes da autorização e clique em Atualizar status.


11. Transferências

Transfira seu saldo disponível para contas externas.

Saldo

TipoSignificado
DisponívelPronto para saque
A liberarAguardando compensação (D+1 Pix, D+2 Boleto, D+30 Crédito)
TotalDisponível + A liberar

Formas de transferência

  • Pix via chave — CPF, CNPJ, email, telefone ou chave aleatória
  • Dados bancários — Banco, agência, conta (Pix ou TED automático)

Ambas requerem confirmação de dados + PIN de segurança.

Taxa de saque

Uma taxa fixa é cobrada por saque (Pix: R$ 3,49 / TED: R$ 9,49 — padrão). Verifique os valores atuais em Configurações.

Extrato

A aba Extrato mostra todas as movimentações financeiras com saldo corrente.

Calendário de saques

O painel Recebíveis mostra a projeção do que vai cair na sua conta nos próximos dias com base no método de pagamento (Pix D+1, Boleto D+2, Cartão D+30 por parcela). É uma estimativa.

Para o valor exato que vai aparecer no seu extrato bancário hoje (e nos próximos dias úteis), use o card Depositado no painel principal — esse é o número que vem direto do processador, já considerando cut-off horário, fins de semana, retenções e tentativas rejeitadas. Costuma divergir da projeção de Recebíveis em 5% ou mais.

Por que o nome no meu extrato bancário não é a Vitrin?

Quando você recebe o repasse na sua conta bancária, o descritor do Pix vai mostrar o nome da instituição de pagamento autorizada pelo Banco Central que executou a transferência — não o da Vitrin nem o da sua loja. Isso é exigência regulatória do SPI/BACEN (o ordenador da transferência precisa se identificar), aplicada a qualquer intermediador de pagamentos no Brasil, e não é configurável.

Tudo fora desse caso continua white-label: seu cliente final vê o nome da sua loja no checkout, no e-mail de confirmação, no webhook que o seu sistema recebe. O nome do processador só aparece no extrato bancário do repasse que cai pra você.


12. Simulador

Simule taxas, valor líquido e prazos antes de cobrar:

  1. Insira o valor da venda
  2. Escolha o método (Pix, Boleto, Cartão)

O simulador mostra em tempo real:

  • Quanto você recebe líquido (valor da venda menos a taxa) e quando (D+1, D+2 ou D+30)
  • Quanto você recebe com antecipação (D+2 útil), quando o admin liberar antecipação
  • Detalhamento da taxa (percentual + fixa)
  • Comparativo visual em barras

13. Configurações

Métodos de Pagamento

Ative ou desative Pix, Pix Automático, Cartão de Crédito e Boleto conforme sua necessidade. Os métodos disponíveis dependem do que o admin Vitrin liberou para a sua organização — métodos não liberados aparecem esmaecidos com a tag Não liberado. Para solicitar liberação, contate o suporte.

Sob cada toggle a Vitrin lista os campos que aquele método obriga no checkout (ex.: Boleto exige CEP, Endereço, Número, Cidade, UF). Você não precisa configurar isso à mão — esses campos aparecem automaticamente no checkout público quando o pagador escolhe o método. Veja a seção 14 → "Campos do checkout" para detalhes.

Parcelamento

  • Máximo de parcelas — Limite até 21x (dentro do que o admin liberar)
  • Parcela mínima — Valor mínimo de cada parcela

Webhook

Configure a URL onde sua aplicação recebe notificações de eventos (pagamento confirmado, reembolso, chargeback, etc.).

  • URL — Endpoint HTTPS da sua aplicação
  • Secret — Gerado automaticamente, usado para validar assinaturas HMAC-SHA256

Checkout

A configuração detalhada do Checkout público vive em uma página própria — Dashboard → Checkout público. Veja a seção 14 abaixo.

API Key

Regenere sua API key (a anterior é revogada). Requer PIN.


14. Checkout público

A Vitrin hospeda uma página de checkout pronta para cada produto e plano que você cria. Sem precisar codar nada, você compartilha um link e o cliente paga direto.

URL do checkout

Cada item gera uma URL no formato:

https://vitrin.digital/c/<sua-org>/<slug-do-item>

O atalho "Copiar link" existe nos cards de Produtos e Planos. Use esse link em bios de redes sociais, anúncios, emails de campanha, QR codes em ponto físico, etc.

O que o cliente vê

  • Sua marca (logo + cores) no topo
  • Nome, descrição, capa e vídeo do produto/plano
  • Para planos: preço por ciclo, badge de trial gratuito, taxa de adesão (quando configurada)
  • Para contribuição/valor aberto: campo destacado "Você define o valor" com piso/teto
  • Order bumps ativos — checkbox com oferta complementar
  • Campo de cupom com validação em tempo real
  • Coleta de dados do pagador (nome, email, CPF, telefone)
  • Escolha do método (Pix, Cartão, Boleto — só os ativos da sua org)
  • Em cartão: parcelamento dentro do limite do produto
  • Após o pagamento: redireciona para a URL após pagamento configurada no item (ou para o URL de obrigado padrão definido em Checkout público), ou exibe instruções (QR Pix / boleto)

Configuração — Dashboard → Checkout público

BlocoCampos
IdentidadeURL do logo, cor primária, cor de destaque, exibir nome da organização (quando não há logo)
Suporte e termosEmail de suporte, WhatsApp de suporte, URL de obrigado padrão (fallback), texto de termos exibido abaixo do botão de pagar
Campos do checkoutDefina o que o pagador preenche antes de pagar

A página exibe também o link base do seu checkout para fácil cópia.

Campos do checkout

Você decide o que exibir e o que é obrigatório no checkout público.

Sempre obrigatórios (sistema): Nome completo e CPF/CNPJ — não podem ser desativados.

Toggleáveis (você escolhe Exibir / Obrigatório):

  • Email
  • Telefone
  • Data de nascimento
  • CEP, Endereço, Número, Complemento, Cidade, UF

Reforço automático por método de pagamento. Cada método tem um conjunto mínimo de campos exigidos pelo provedor. A Vitrin força esses campos como obrigatórios automaticamente quando o pagador escolhe o método correspondente — não há como desativar:

MétodoCampos exigidos automaticamente
Pix / Pix AutomáticoEmail
Cartão de créditoEmail, Telefone
BoletoEmail, CEP, Endereço, Número, Cidade, UF

Exemplo: você desabilita o bloco de endereço no checkout, mas mantém Boleto entre os métodos. Quando o pagador clica em Boleto, os campos de endereço aparecem com asterisco automaticamente. Em Pix, somem.

Ao ativar CEP, o checkout faz auto-preenchimento via ViaCEP — o pagador digita 8 dígitos e endereço/cidade/UF chegam prontos. Recomendado para produtos físicos e para reforçar defesa de chargeback.

Campos customizados. Adicione qualquer pergunta extra:

  • Chave (id) — identificador interno (ex.: como_conheceu)
  • Pergunta exibida — o texto que o pagador vê
  • Tipo — texto, texto longo, email, telefone, ou lista (select)
  • Obrigatório — checkbox
  • Opções — quando tipo é lista (uma por linha)

As respostas viram parte do Customer.custom_data e também do bloco order no webhook canônico (payment.ordercustomer_chosen_amount/coupon/...). Use para perguntar coisas como "Como nos conheceu?", "Tamanho da camiseta", "Restrição alimentar", etc.

White-label

A Vitrin não é mencionada nas páginas públicas — a marca exibida é a da sua organização. Cliente final percebe o pagamento como sendo direto com você.

Webhook após o pagamento

Quando o pagamento é confirmado, sua URL de webhook recebe o evento canônico de pagamento enriquecido com o bloco order contendo:

{
  "event": "PAYMENT_RECEIVED",
  "payment": {
    "id": "...",
    "status": "received",
    "amount": 50.00,
    "order": {
      "id": "...",
      "product": {
        "id": "...",
        "slug": "doacao-vitrin",
        "name": "Apoie o canal",
        "type": "contribution",
        "thank_you_url": "https://..."
      },
      "coupon": { "code": "PROMO10", "discount_amount": 5.00 },
      "bump": { "product_name": "Ebook bônus", "amount": 19.00 },
      "customer_chosen_amount": 50.00
    }
  }
}

Use isso para liberar acesso à área de membros, enviar o produto digital, registrar a doação no seu CRM, etc., sem chamada GET extra.

Trial e dunning

  • Trial gratuito: definido no plano (Dias de teste = 7, Valor do trial = R$ 0). A primeira cobrança real só ocorre após o período. Cliente entra ativo imediatamente.
  • Inadimplência (dunning): assinaturas que ficam overdue por 7 dias disparam o webhook subscription.dunning_warning. Após 30 dias, são automaticamente canceladas e disparam subscription.canceled_for_dunning. Use esses eventos no seu fluxo de retenção.

15. Segurança

PIN de 6 dígitos

Operações sensíveis requerem PIN:

AçãoRequer PIN
Reembolsar transaçãoSim
Solicitar antecipaçãoSim
Cancelar autorização Pix AutomáticoSim
Transferir saldoSim
Alterar webhookSim
Regenerar API keySim
Alterar métodos de pagamentoSim
Criar cobrançaNão
Criar autorização Pix AutomáticoNão
Gerar cobrança recorrente Pix AutomáticoNão
Visualizar relatóriosNão

Bloqueio de PIN

Após 5 tentativas erradas, o PIN é bloqueado por 15 minutos.

Redefinir PIN

Acesse a tela de login → "Esqueci meu PIN" → Confirme com email e senha → Novo PIN via email.


16. Chargebacks

Disputa é manual: você sustenta a defesa diretamente com a operadora do cartão. A Vitrin é o organizador: aqui você guarda e baixa o material, e encaminha pra operadora pelo canal manual deles.

Acesse Chargebacks no menu pra ver as disputas em aberto.

Anexar evidências

Em cada disputa (botão "Defender"), abra o painel lateral e anexe arquivos por categoria:

  • Comprovante de entrega/serviço — nota fiscal, rastreio, foto do entregue
  • Comunicação com cliente — emails, prints de chat, SMS
  • Contrato/termo aceito — termos de uso, contrato assinado
  • Recibo / comprovante de uso — login logs, prova de uso do produto
  • Tentativa de reembolso/contato — mostra que tentou resolver
  • Logs de IP / sessão / dispositivo — comprova que foi o cliente quem comprou
  • Outro

Arquivos PDF, imagens, etc — máx 25 MB por upload. Você pode coletar evidências preventivamente em transações que ainda não foram contestadas (ex: salvar comprovante de entrega assim que entregar) — isso facilita defesa rápida quando a disputa surge.

Dossiê de defesa pré-montado

A Vitrin gera automaticamente um relatório com tudo que ela tem da transação:

  • Dados do pagador (CPF, email, telefone, IP, endereço)
  • Detalhes da transação (valor, data, método)
  • Comprovante de entrega (se o pedido foi marcado como entregue)
  • Transações anteriores do mesmo cliente (não contestadas)
  • Timeline de webhooks
  • Registro de auditoria

Junto com suas evidências anexadas, você usa esse material pra montar a contestação no painel/canal da operadora do cartão.

Boas práticas pra reduzir chargebacks: cobre só após confirmar identidade, marque pedidos como fulfilled assim que entregar, mantenha cadastro de cliente completo (endereço!), responda chargebacks rapidamente.


17. Recebíveis

Acesse Recebíveis no menu lateral pra ver o cronograma do dinheiro que vai cair na sua conta. Útil pra projetar fluxo de caixa.

A página mostra:

  • A receber — total previsto no horizonte selecionado (7/30/90/365 dias)
  • Próximos 7 dias — caixa de curto prazo
  • Por mês — quanto cai em cada mês
  • Detalhamento — cada repasse previsto, com método e parcela (ex: 2/3 em cartão 3x)

Regras de release: PIX em D+1, Boleto em D+2, Cartão à vista em D+30, Cartão Nx uma parcela em D+30·n. Se você antecipou uma cobrança, ela aparece consolidada em D+1 com selo "Antecipado".


18. Exportar dados (LGPD)

Acesse Configurações → Exportar dados pra baixar um snapshot completo dos seus dados (clientes, transações, assinaturas, planos, produtos). Atende ao direito de portabilidade da LGPD.

  • Formato JSON — arquivo único com tudo aninhado
  • Formato CSV — zip com 5 tabelas separadas

Processamento leva alguns segundos. Quando pronto, você recebe email com link de download. O histórico fica disponível por 90 dias. Limite: 1 export rodando por vez (pra não sobrecarregar).


19. Indicadores no header (test/live + ambiente)

Dois badges pequenos no topo do dashboard:

  • Test mode / Live mode — reflete o estado da sua org. Antes da aprovação, só vd_test_* funciona; depois, vd_live_* também.
  • Local / Sandbox / Produção — indica em qual ambiente da Vitrin você está logado. Útil quando você tem várias instâncias.

Passe o mouse pra ver o tooltip explicativo de cada um.


20. Suporte