Skip to content
Payouts & Commissions

Every sale, every commission, every payout — tracked from the moment it lands

Stripe Connect onboarding for your org, automatic commission entries on terminal and online sales, refund-aware reversals, seven commission types, and a per-photographer dashboard with pending, this-month, total paid, and lifetime stats.

7
Commission types
5
Payout statuses
48h
Default payout hold
Stripe Connect
Express onboarding

Stripe Connect Express onboarding for your organization

One click from your dashboard kicks off Stripe Connect Express onboarding. We create the account, store the connectAccountId on your org, and hand you the onboarding link. Status moves from PENDING through PENDING_VERIFICATION to ACTIVE as Stripe confirms identity, bank account, and tax info.

  • Express accounts created via Stripe Connect API
  • Onboarding link generated on demand from /dashboard/payouts/onboard
  • stripeConnectAccountId persisted on the Organization model
  • Status flow: PENDING → PENDING_VERIFICATION → ACTIVE
  • Real-time requirements check via the status endpoint
  • No bank-account UI we have to maintain — Stripe does it
Stripe Connect Express onboarding for your organization feature illustration

Automatic commission entries on every sale

When a Stripe Terminal sale confirms, we create the Order, mark the gallery PAID, and write a Commission row tied to the photographer in the same database transaction. Online sales follow the same path through the Stripe webhook. Cash sales record on the kiosk and reconcile in the cash dashboard.

  • Stripe Terminal confirms create Order + Commission atomically
  • Online checkout webhook writes Commission on payment_succeeded
  • Commission rate, gross amount, net amount stored per row
  • Tied to userId, orderId or bookingId, and YYYY-MM month string
  • Idempotent on Stripe payment intent — no duplicate commissions
  • Indexed by month, status, isPaid, orderId for fast monthly rollups
Automatic commission entries on every sale feature illustration

Seven commission types — every revenue stream covered

Photo sales, digital passes, appointment bookings, QR referrals (the receptionist who scanned the guest in), automated sleeping-money sales (the abandoned cart that converted three days later), attendance bonuses, and package bookings each get their own commission type so reporting actually means something.

  • PHOTO_SALE — kiosk + online photo sales
  • DIGITAL_PASS_SALE — pre-arrival or on-site pass purchases
  • APPOINTMENT_BOOKING — VIP / sunset / studio sessions
  • QR_REFERRAL — receptionist's 5% on QR-driven bookings
  • SLEEPING_MONEY — automated post-trip conversions
  • ATTENDANCE_BONUS — staff attendance + reliability bonus
  • PACKAGE_BOOKING — multi-session package commissions
Seven commission types — every revenue stream covered feature illustration

Refund-aware reversals + monthly aggregation + CSV export

When a refund hits, the Commission row flips to REVERSED so it never shows up in payable totals. Monthly aggregation rolls every commission into a YYYY-MM bucket — the dashboard shows pending, this month, total paid, and lifetime side by side. CSV export takes 30 days of cash + commission activity in one click.

  • 5 commission statuses: PENDING / APPROVED / PAID / REVERSED / ADJUSTED
  • Refund webhook flips matching commission to REVERSED automatically
  • Manual ADJUSTED status with notes field for one-off corrections
  • Monthly bucket (YYYY-MM) for payroll and reporting
  • Per-photographer dashboard: pending, this month, paid, lifetime
  • Admin payout dashboard sees every photographer at once
  • 30-day CSV export at /api/admin/cash/export
Refund-aware reversals + monthly aggregation + CSV export feature illustration

Everything included

No feature gates. No hidden upgrades. Get the full experience from day one.

Stripe Connect Express

One-click onboarding flow with persisted connectAccountId and live status.

Auto commission on Terminal

Stripe Terminal confirm writes Order + Commission atomically.

Auto commission on online sales

Stripe webhook creates Commission on payment_succeeded.

7 commission types

PHOTO_SALE, DIGITAL_PASS, BOOKING, QR_REFERRAL, SLEEPING_MONEY, ATTENDANCE, PACKAGE.

5 commission statuses

PENDING / APPROVED / PAID / REVERSED / ADJUSTED with notes for corrections.

Refund reversal

Refund webhook flips matching commission to REVERSED — no manual cleanup.

Monthly buckets

Every commission tagged YYYY-MM for payroll-friendly reporting.

Photographer payout dashboard

Pending / This Month / Total Paid / Lifetime stats per photographer.

Admin payout dashboard

Org-wide view of every photographer's pending and paid totals.

Idempotent payment handling

Stripe payment intent is the dedup key — replay-safe.

Indexed for speed

Indexed on userId, month, status, isPaid, orderId, bookingId.

30-day CSV export

/api/admin/cash/export downloads cash + commission activity for accounting.

Who it's for

Wedding + portrait photographers

Stripe Connect onboard, deliver galleries, get paid via Stripe transfers. Per-booking payout status (PENDING → HELD → RELEASED → PAID) shows exactly where each session stands. Refund handling flips the commission automatically.

Venues with photographer teams

Every team member sees their own pending and paid commissions. CEO sees everyone in /admin/payouts. Monthly aggregation makes payroll trivial — pull the YYYY-MM bucket, mark paid, done.

Receptionists earning QR referrals

QR_REFERRAL commission type captures the 5% receptionists earn for booking guests via their lobby QR codes. Tracked, reportable, and paid out the same way photographer commissions are.

Sleeping-money revenue

When the abandoned-cart email converts three days later, the photographer who shot the gallery still earns a SLEEPING_MONEY commission. No revenue gets lost between manual and automated channels.

Full feature list

Stripe Connect Express onboarding
stripeConnectAccountId on the Organization
Auto Commission on Stripe Terminal
Auto Commission on online checkout
PHOTO_SALE commissions
DIGITAL_PASS_SALE commissions
APPOINTMENT_BOOKING commissions
QR_REFERRAL (receptionist 5%)
SLEEPING_MONEY (post-trip auto sales)
ATTENDANCE_BONUS
PACKAGE_BOOKING
Refund-aware REVERSED status
Manual ADJUSTED with notes
Monthly YYYY-MM aggregation
Per-photographer dashboard
Pending / This Month / Total Paid / Lifetime
Admin org-wide payout view
Idempotent on Stripe payment intent
30-day CSV export

Pixieset has no commission tracking. SmugMug has no team payouts. Resort photo platforms either lock you into their checkout or hand you a spreadsheet at the end of the month. Fotiqo writes a Commission row inside the same database transaction as the Order — refund a sale, the commission reverses; mark a month paid, every row updates at once.

Compare plans

“Fotiqo has everything I need in one place. I stopped paying for four separate tools and my workflow is so much simpler now.”

Sarah Chen, Wedding Photographer

Ready to get started?

Free to start. No credit card. No monthly fees on the Starter plan.

See payout tracking in action