Novo Cartão de Embarque
Preencha os dados e gere o link para o passageiro
Companhia & Voo
Dados do Passageiro
Detalhes do Embarque
Pagamento
Documento Anexo PDF (Opcional)
Anexe um PDF que ficará disponível para o passageiro visualizar junto ao cartão de embarque.
Arraste um PDF aqui ou clique para selecionar
Apenas arquivos PDF • Máximo 10MB
documento.pdf
0 KB
Preview
● Ao vivoCliente
Adilson da Silva / Rosilda Aparecida
Tudo AZUL
Diamante
CUR
Origem
Voo AD4972
SOP
Destino
15:00
10/03/2026
--:--
--:--
Embarque
15:00
Portão
16
Assento
A22A23
Seção
D
Valor a pagar
R$ 10,00
Configurações PIX
Configure sua chave PIX ou cole um código PIX já gerado. O passageiro receberá o QR Code automaticamente.
💡 Como usar
Cole aqui o código PIX completo (EMV/Copia e Cola) gerado pelo seu banco ou aplicativo. Ele será entregue diretamente ao passageiro sem modificações.
O código será usado exatamente como colado, sem alterações.
Como funciona
Configure o PIX
Use chave dinâmica ou cole um código pronto
Preencha o cartão de embarque
Dados do passageiro, voo e valor
Gere o link e envie ao passageiro
Opcionalmente anexe um PDF
Passageiro paga e acessa o PDF
QR Code e documento disponíveis
Diferença entre as opções:
Chave PIX
O sistema gera o código automaticamente com o valor exato da cobrança.
Código PIX Pronto
Você cola um código já gerado pelo seu banco. Ideal para cobranças fixas ou com vencimento.
Gateway Ativo
Nenhum selecionadoSelecione e configure um gateway.
Configurar Gateway
Links Gerados
Nenhum link gerado ainda.
Notificação via WhatsApp
Receba uma mensagem no WhatsApp sempre que um pagamento for confirmado.
📱 Como ativar (faça apenas uma vez):
- Salve o número +34 644 60 49 48 na sua agenda
- Envie a mensagem: I allow callmebot to send me messages
- Aguarde a resposta com sua API Key
- Cole a API Key abaixo e salve
Notificações em Tempo Real
O painel escuta o banco de dados em tempo real.
Histórico de Pagamentos
Nenhum pagamento recebido ainda.
Checklist para Hospedagem
Supabase URL e Key configurados
Credenciais já inseridas no código
Links corrigidos — sem necessidade de .htaccess
Formato: appvoadecolar.com/?id=... funciona direto na Hostinger
Execute o SQL no Supabase
Necessário para salvar cartões no banco de dados
Hospede o arquivo HTML no domínio
appvoadecolar.com — após isso os links funcionarão para qualquer pessoa
SQL Completo
-- BOARDINGPANEL SQL COMPLETO v2.4
CREATE TABLE IF NOT EXISTS boarding_passes (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
created_at TIMESTAMPTZ DEFAULT NOW(),
passenger_name TEXT, program TEXT, category TEXT,
origin TEXT, destination TEXT, flight_number TEXT,
departure_time TEXT, departure_date TEXT,
arrival_time TEXT, arrival_date TEXT,
boarding_time TEXT, gate TEXT, seat TEXT,
section TEXT, boarding_type TEXT,
amount NUMERIC DEFAULT 0, pix_expiry_secs INTEGER DEFAULT 600,
pix_key TEXT, pix_name TEXT, pix_city TEXT,
gateway_id TEXT, status TEXT DEFAULT 'pending',
pdf_url TEXT, airline TEXT DEFAULT 'azul',
proof_url TEXT
);
ALTER TABLE boarding_passes ENABLE ROW LEVEL SECURITY;
DROP POLICY IF EXISTS "Allow all boarding_passes" ON boarding_passes;
CREATE POLICY "Allow all boarding_passes" ON boarding_passes FOR ALL TO anon USING (true) WITH CHECK (true);
ALTER PUBLICATION supabase_realtime ADD TABLE boarding_passes;
CREATE TABLE IF NOT EXISTS gateway_configs (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
created_at TIMESTAMPTZ DEFAULT NOW(),
gateway_id TEXT UNIQUE NOT NULL,
gateway_name TEXT, config JSONB DEFAULT '{}',
is_active BOOLEAN DEFAULT false,
updated_at TIMESTAMPTZ DEFAULT NOW()
);
ALTER TABLE gateway_configs ENABLE ROW LEVEL SECURITY;
DROP POLICY IF EXISTS "Allow all gateway_configs" ON gateway_configs;
CREATE POLICY "Allow all gateway_configs" ON gateway_configs FOR ALL TO anon USING (true) WITH CHECK (true);
INSERT INTO storage.buckets (id, name, public, file_size_limit, allowed_mime_types)
VALUES ('boarding-attachments','boarding-attachments',true,10485760,ARRAY['application/pdf','image/jpeg','image/png','image/webp'])
ON CONFLICT (id) DO UPDATE SET public=true,file_size_limit=10485760,allowed_mime_types=ARRAY['application/pdf','image/jpeg','image/png','image/webp'];
DROP POLICY IF EXISTS "Allow public upload files" ON storage.objects;
CREATE POLICY "Allow public upload files" ON storage.objects FOR INSERT TO anon WITH CHECK (bucket_id='boarding-attachments');
DROP POLICY IF EXISTS "Allow public read files" ON storage.objects;
CREATE POLICY "Allow public read files" ON storage.objects FOR SELECT TO anon USING (bucket_id='boarding-attachments');
DROP POLICY IF EXISTS "Allow public delete files" ON storage.objects;
CREATE POLICY "Allow public delete files" ON storage.objects FOR DELETE TO anon USING (bucket_id='boarding-attachments');