Skip to content

Doacoes Online

Visao Geral

Modulo de doacoes online integrado ao Asaas, permitindo que membros logados e visitantes faca doacoes via PIX ou cartao de credito. Cada igreja possui uma sub-conta Asaas com split automatico (3% Decaelo, 97% igreja). Suporta doacoes avulsas e dizimo recorrente mensal.

Fluxo

  1. Admin ativa feature online_donations no tenant
  2. Pastor configura dados bancarios e CNPJ em /donations/settings
  3. Sistema cria sub-conta Asaas automaticamente
  4. Membros doam via /doar (logado) ou visitantes via link publico
  5. PIX gera QR code; cartao processa via Asaas
  6. Webhook confirma pagamento, cria Transaction no financeiro e envia recibo PDF por e-mail

Models

DonationSettings

Namespace: App\Domain\Donation\Models\DonationSettings

Tabela singleton (1 registro por tenant) com dados da sub-conta Asaas.

CampoTipoDescricao
asaas_sub_account_idstringID da sub-conta no Asaas
asaas_sub_account_keystringAPI key da sub-conta
cnpjstring(14)CNPJ da igreja
bancostringNome do banco
agenciastringAgencia
contastringNumero da conta
tipo_contastringcorrente ou poupanca
responsavel_nomestringNome do responsavel financeiro
responsavel_emailstringE-mail do responsavel
is_activebooleanSub-conta ativa e configurada

DonationPayment

Namespace: App\Domain\Donation\Models\DonationPayment

Cada doacao individual. Usa ULID, SoftDeletes.

CampoTipoDescricao
ulidstringIdentificador publico
member_idFK nullableMembro doador (null para visitantes)
transaction_idFK nullableTransaction criada apos confirmacao
asaas_payment_idstringID do pagamento no Asaas
asaas_subscription_idstring nullableID da subscription (recorrente)
donor_namestringNome do doador
donor_cpfstring nullableCPF do doador
donor_emailstringE-mail do doador
category_idFKCategoria (Dizimo, Oferta, etc)
valordecimalValor da doacao
payment_methodstringpix ou credit_card
statusDonationStatuspending, confirmed, overdue, refunded, cancelled
is_recurringbooleanSe e recorrencia mensal
pix_qrcodetext nullableQR code base64 (PIX)
pix_copy_pastetext nullableCodigo copia-e-cola (PIX)
receipt_pathstring nullableCaminho do PDF do recibo
paid_attimestamp nullableData de confirmacao

Relationships: member(), transaction(), category(), congregation() Scopes: confirmed(), byMember(), recurring()

Actions

ActionDescricao
SetupDonationAccountActionCria sub-conta Asaas, salva DonationSettings
CreateDonationPaymentActionCria pagamento avulso (PIX ou cartao) com split 3%
CreateDonationSubscriptionActionCria assinatura recorrente mensal (cartao)
HandleDonationConfirmedActionWebhook: confirma doacao, cria Transaction, gera recibo
HandleDonationRefundedActionWebhook: marca como estornado, cancela Transaction
CancelDonationSubscriptionActionCancela assinatura no Asaas
GenerateDonationReceiptActionGera PDF recibo via Gotenberg e envia por e-mail

Rotas

Autenticadas (feature: online_donations)

MetodoRotaControllerPermissao
GET/donations/settingsDonationSettingsController@editfinance.view
PUT/donations/settingsDonationSettingsController@updatefinance.create
GET/donationsDonationController@indexfinance.view
POST/donationsDonationController@memberDonateautenticado
GET/donations/myDonationController@myDonationsautenticado
DELETE/donations/subscriptions/DonationController@cancelSubscriptionautenticado (owner)

Publicas

MetodoRotaController
GET/doarPublicDonationController@show
POST/doarPublicDonationController@store (throttle:10,1)

Split Automatico

Cada pagamento inclui configuracao de split Asaas: 3% para wallet Decaelo (ASAAS_WALLET_ID), 97% fica na sub-conta da igreja. Configuravel via ASAAS_SPLIT_PERCENTAGE.

Webhook

O webhook /webhooks/asaas roteia entre billing e doacoes via externalReference:

  • Prefixo donation: → HandleDonationConfirmedAction / HandleDonationRefundedAction
  • Sem prefixo → fluxo billing existente

Frontend

PaginaRotaDescricao
Donations/Settings.vue/donations/settingsSetup: CNPJ, banco, categorias online
Donations/Index.vue/donationsPainel admin: KPIs + tabela de doacoes
Donations/MyDonations.vue/donations/myHistorico do membro + recorrencias
Donations/PublicDonate.vue/doarPagina publica com logo da igreja

Feature Flag

online_donations — disponivel para TODOS os planos. Cada doacao gera receita de split para o Decaelo.