SERVICE

Fax Broadcasting Development

Engineering for retail fax and bulk fax broadcasting platforms—roles, campaigns, wallets and compliance lists under one Laravel control plane.

We implement the product surfaces operators need: Admin / Reseller / Customer tenancy, three-step campaign wizards, lead & DNC CSV mapping, Stripe balance top-ups, Socialite login, DID/call-forwarding requests, reports with reorder, role permissions and optional SSO across related fax modules.

Laravel · Socialite · Stripe · Campaigns · DNC · RBAC · SSO · Reports

Outcome page for buyers: Retail Fax & Bulk Fax Broadcasting. This brief is the engineering slice—how the system is structured and what we own in delivery.

What this engagement covers

Identity & tenancy

AuthController login, Socialite Google/LinkedIn, registration + email verification, role.check middleware, menus/roles permissions, 403 on unauthorized routes.

Campaign plane

CampaignController add/store/delete; fax_file storage; schedule vs immediate send; admin soft/permanent delete; customer create + reorder.

Lists & files

Lead/DNC CSV upload with field mapping; starred / recent / recovery / deleted file states; fax documents tied to campaigns.

Commercial & retail

Stripe PaymentController top-ups; balance updates; DID request & call-forward tables for customers; reseller/customer user management.

Application planes
AuthPassword · Socialite · OTP
RBACroles · menus · 403
UsersAdmin · Reseller · Customer
Campaignswizard · fax_file
Leads / DNCCSV map
PaymentsStripe · balance
Reportscampaign · files · reorder
DIDrequest · forward
SSOBearer · sso_login
Auth (web · auth.check · role.check)
  → Dashboard metrics by user_type
  → Campaigns (scoped queries)
  → Files / Leads / DNC
  → Payments (customers)
  → Reports + Reorder
  → Profile / DID
  → Role permissions (admin)
  → SSO token exchange (optional)

Core data model (representative)

  • users — credentials, user_type, balance, verify_contact, created_by, profile fields.
  • campaign + fax_file — campaign metadata and document blobs/paths.
  • leads · dnc_list — list rows with status flags (active / starred / recovery / soft-delete).
  • payments · stripe_payment · customers — wallet commercial path.
  • roles · menus — permission assignment JSON / menu IDs.
  • request_did · did_call_forward · countries — retail DID flow.
  • sso_login — token/session IP tracking across integrated fax products.

Campaign engineering notes

  • Three-step UI with Ajax store—keeps large file + list selection responsive.
  • Cost display against users.balance before schedule/send.
  • Reseller: read-only campaign visibility for owned customers; Admin: soft delete + permanent delete from deleted tab.
  • Reorder reuses campaign.edit → store for completed jobs.

Auth & social login

Laravel Socialite drivers for Google and LinkedIn (login/{driver}, callback). createOrUpdateInfo upserts the User model; email/password path uses postLogin. Gmail OTP-style recovery and profile password update with email notification fit the same identity plane.

Stripe wallets

Customers only: /payments history, /payments/new form (amount, billing fields), PaymentIntent path, then balance update on success. Admin/Reseller see payments UI without top-up requirements.

SSO across fax products

When retail fax, email-fax and dialer siblings share identity: Bearer token validation against users, session recorded in sso_login with IP/device metadata. Routes such as /ssologin and /ssologinweb are scoped per product estate.

Proof

Technology

  • Application: Laravel · PHP · Blade/Vue-ready APIs
  • Auth: Laravel Socialite · role middleware · OTP recovery
  • Payments: Stripe PHP (Customer · PaymentIntent)
  • Data: MySQL/PostgreSQL-class relational schema for campaigns, lists, payments
  • Ops: Queue-friendly campaign jobs · file storage · audit-friendly soft deletes

Related: SaaS & Multi-Tenant · Full-Stack Product Engineering · Custom CRM/ERP.

FAQ

Engineering questions

Multi-tenant fax campaign platforms with Admin, Reseller and Customer roles, campaign wizards, lead/DNC libraries, Stripe wallets, reports, DID/call-forwarding requests and optional SSO across related fax products.

Laravel application planes with role middleware, Socialite for Google/LinkedIn, Stripe PHP for wallets, CSV lead/DNC import with field mapping, and fax file storage tied to campaigns. Carrier/backend integration is scoped per engagement.

Yes. Data queries and menus are scoped by authenticated user type and created_by relationships so resellers see their customers’ campaigns and files without platform-wide access.

Role and menu tables drive create/read/update/delete/respond permissions. Unauthorized routes redirect to a 403 path via assigned-URL helpers—not only UI hiding.

Yes. Customer top-ups can use Stripe PaymentIntent/customer flows with payments and balance updates on the users record.

Yes when required. Bearer-token SSO can authenticate across related fax/email/retail modules while logging device/IP session metadata.

Yes — demo page and YouTube.

Send current stack (or greenfield), role model, target countries and monthly volume via Contact. First reply names the campaign, wallet and tenancy cut.

Start here

Outcome vs engineering.

Solution (buyer) → Working demo → SaaS multi-tenant → Contact →
LaravelSocialiteStripeRBACSSO

Building or modernizing a fax SaaS?

Share the role model, carrier path and whether resellers own customer wallets. We’ll return an architecture cut for campaigns, lists and payments.