Payments & Financials

9 articles

Setting Up Payments

Why Set Up Payments? To accept direct bookings through your booking engine, you need a way to process payments. OnSeason uses Stripe Connect Express — a secure, industry-standard payment platform that handles credit card processing and payouts to your bank account. Only workspace Owners can set up and manage payment integrations. Connecting Stripe Navigate to Settings > Integrations > Stripe in your dashboard. You'll see two options: - Create New Account — Best for most users. Creates a new Stripe Express account linked to OnSeason. - Connect Existing Account — If you already have a Stripe account, you can link it directly via authorisation. - Complete Stripe's onboarding — For a new account, Stripe will ask for your business details, bank account information, and identity verification. This is a one-time setup. If connecting an existing account, you'll authorise OnSeason to use it. - Return to OnSeason — After completing Stripe's flow, you'll be redirected back to OnSeason. Your integration settings will show your account status — charges and payouts enabled means you're all set. - Add your Publishable Key — After connecting, enter your Stripe Publishable Key so your booking engine can process payments from guests. You'll find this in your Stripe dashboard. How Payments Work When a guest books one of your properties: - Authorisation — The guest's card is authorised (funds are held, not charged) - Capture — You review the booking and capture the payment when you're ready - Payout — Stripe transfers the funds to your bank account on your payout schedule Payments are captured manually. When a guest books, the payment is authorised (held), and you capture it when ready. This gives you time to confirm the booking before charging the guest. Fees Stripe charges a processing fee per transaction. This fee is deducted automatically from each payment before it reaches your bank account. There are no additional OnSeason payment fees. Check Stripe's pricing and fees here: https://stripe.com/pricing * *In the footer, you need to pick the country your Stripe account is registered for, so you can see the correct fees. You need an active subscription to process payments. The first 7 days are free, so you can get everything set up before committing. What's Next? With your PMS connected and payments enabled, you're almost ready to go live. Let's make sure everything is in place to publish your booking engine.

How Payments Work on OnSeason

Payments Made Simple OnSeason uses Stripe Connect to process guest payments. When a guest books one of your listings, the payment goes through Stripe and the funds are deposited directly into your bank account. You don't need to handle any payment processing yourself — OnSeason and Stripe take care of everything. What Is Stripe Connect? OnSeason uses the Stripe Express model. This means: - You need to connect an existing Stripe account or create a new account Stripe handles compliance, tax reporting, and payout scheduling. You get a Stripe Dashboard to track your payments, payouts, and account details. - Your guests' card data is processed securely by Stripe — it never touches OnSeason's servers OnSeason offers a 7-day free trial. During the trial, you can set up Stripe Connect and configure your booking engine. Live payments require an active subscription. The Payment Flow Every booking payment goes through three phases: - Authorisation — When a guest completes checkout, their card is authorised — funds are reserved but not charged yet. This gives your PMS time to confirm the reservation. - Capture — Once the reservation is confirmed in your PMS and synced back to OnSeason, the authorized amount is captured — the guest is actually charged. - Payout — Stripe transfers the funds to your bank account according to your payout schedule (typically 2-7 business days). OnSeason uses manual capture to protect you. If a reservation can't be confirmed in your PMS, the guest's card is never charged — the authorisation simply expires. Fee Structure - Stripe Processing Fee Stripe charges а dynamic fee on each successful transaction, depending on your account country, the payment method and whether there has been any currency conversion. You can check the Stripe Processing Fees depending on your country here: https://stripe.com/pricing https://app.guideflow.com/embed/0p00jwotvp This fee is deducted automatically from each payment by Stripe before it reaches your balance. - OnSeason Platform Fee Your OnSeason subscription covers payment processing — there is no additional per-transaction platform fee for bookings on your own properties. - Network Bookings If a guest books a Partner Property (a listing you imported from the OnSeason Network), the following commissions apply: 1. 90% goes to the property owner 2. 5% goes to you (the Property Manager that owns the website) 3. 5% goes to the OnSeason platform Before setting up payments, make sure you have: 1. An OnSeason workspace with Owner or Admin role 2. A bank account for receiving payouts 3. Your business details for Stripe verification (business name, address, tax ID if applicable)

Setting Up Stripe Connect

Getting Connected This guide walks you through connecting your Stripe account to OnSeason so you can accept payments from guests. You have two options: create a new Stripe account (recommended for most users) or connect an existing one. Before you begin, make sure you have: 1. An active OnSeason workspace 2. Owner or Admin role in the workspace (Members and Viewers cannot manage payment integrations) 3. Your business details (legal name, address, tax information) 4. A bank account for receiving payouts Option 1: Create a New Stripe Account (Recommended) This is the easiest option. OnSeason creates a Stripe Express account for you and guides you through a simple setup wizard. - Navigate to Stripe Settings — Go to Settings > Integrations > Stripe in your OnSeason dashboard. - Click Create New Account — Click the "Create New Account" button. OnSeason starts the Stripe Express onboarding process and redirects you to Stripe. - Complete the Stripe Onboarding Wizard — Stripe walks you through a guided setup: business details (business type, legal name, address), personal information (required by financial regulations), bank account (where you want payouts), and identity verification (upload documents if requested). - Return to OnSeason — After completing the wizard, you're automatically redirected back to OnSeason. - Confirm Connection — Your Stripe integration page now shows "Payments Enabled" with a green status indicator. You're all set! If you close the Stripe onboarding before finishing, don't worry. Go back to Settings > Integrations > Stripe and click "Resume Setup" to continue where you left off. The onboarding link expires after 24 hours — if it expires, OnSeason generates a fresh link automatically. Option 2: Connect an Existing Stripe Account If you already have a Stripe account, you can connect it directly. - Navigate to Stripe Settings — Go to Settings > Integrations > Stripe in your dashboard. - Click Connect Existing Account — Click "Connect Existing Account". You'll be redirected to Stripe. - Authorise OnSeason — Stripe asks you to authorise OnSeason to access your account. Review the permissions and click "Connect". - Return to OnSeason — You're redirected back to OnSeason with your account connected. - Connecting an existing Stripe account uses OAuth — a secure authorisation method. OnSeason never sees your Stripe password. Stripe handles the connection securely. Adding Your Publishable Key After connecting, you need to add your Stripe publishable key so your booking engine can process payments on the client side. For new Express accounts: 1. Open your Stripe Dashboard (click "Open Stripe Dashboard" from the integration page) 2. Go to Developers > API Keys 3. Copy the Publishable key (it starts with pk_live_ or pk_test_) 4. Paste it into the publishable key field on your OnSeason Stripe integration page For existing Standard accounts: The publishable key is populated automatically during the connection process. Make sure you copy the Publishable key, not the Secret key. The publishable key is safe to use on your booking engine — it can only be used to create payment tokens, not to charge cards directly. What Happens Next? - With Stripe connected, your booking engine can now accept payments from guests. Payments are processed through your Stripe account, and you have full visibility. - Payouts are sent to your bank account on Stripe's schedule (typically 2-7 business days). - View your payment activity on your OnSeason Financial Dashboard or directly in your Stripe Dashboard. To understand what happens after a guest pays, see Understanding Payment Statuses.

Understanding Payment Statuses

Payment Statuses Explained Every booking payment goes through a series of statuses. Understanding these helps you know exactly where a payment stands and whether any action is needed on your part. Payment Lifecycle Here's what each status means: - Authorized — The guest's card has been checked and funds are reserved, but no money has been charged yet. This happens the moment a guest completes checkout on your booking engine. - Pending Capture — The reservation is being confirmed with your PMS. Once your PMS confirms the booking, the payment will be captured automatically. This status is usually brief — most confirmations happen within minutes. - Captured — The guest has been charged. Funds will appear in your Stripe balance and be paid out to your bank account according to your payout schedule. - Refunded — The full amount has been returned to the guest. This happens when a booking is cancelled and a full refund is issued. - Partially Refunded — Part of the payment has been returned to the guest — for example, after a partial cancellation or a goodwill gesture. - Failed — The payment could not be processed. Common causes include: card declined by the guest's bank, insufficient funds on the card, or 3D Secure authentication not completed by the guest. - Expired — The authorisation window closed before the payment could be captured. The guest's card was never charged. This can happen if your PMS takes too long to confirm the reservation. Most payments move from Authorised → Pending Capture → Captured automatically. You don't need to take any manual action — OnSeason handles the capture once your PMS confirms the reservation. The Manual Capture Window When a guest's card is authorised, the authorisation is valid for up to 7 days (the exact duration varies by card issuer and bank). During this window: 1. Your PMS confirms or rejects the reservation 2. If confirmed, OnSeason captures the payment automatically. 3. If the reservation can't be confirmed within this window, the authorisation expires, and the guest is not charged. This protects both you and the guest — no one gets charged for bookings that can't be fulfilled. 3D Secure (Strong Customer Authentication) Some cards require extra verification during checkout through 3D Secure — also known as Strong Customer Authentication (SCA). This is a security measure required by banks in many countries. The guest sees a pop-up or redirect during checkout asking them to verify the payment (usually a code sent to their phone or a banking app confirmation). OnSeason handles this automatically — there's nothing you need to configure. If the guest doesn't complete the 3D Secure challenge, the payment status shows as "Failed". Viewing Payment Status You can check the status of any payment in a few places: - Booking detail page — open any booking in the Bookings section to see its payment status - Bookings > Payments tab — see payment statuses for all your bookings in one place - Financial Dashboard — see an overview of all payment activity across your bookings If a payment is stuck or shows an unexpected status, see Payment Troubleshooting for help.

Payment Troubleshooting

This guide covers the most common payment issues you might encounter and how to resolve them. Stripe Onboarding Issues "Onboarding incomplete" You started the Stripe setup but didn't finish. Go to Settings > Integrations > Stripe and click "Resume Setup" to continue where you left off. If the onboarding link has expired (after 24 hours), OnSeason generates a new one automatically. "Account restricted" - Stripe needs additional information from you — usually a document or business detail. Click "Open Stripe Dashboard" from your integration page and follow the prompts to provide the required documentation. "Charges not enabled" Your Stripe account setup isn't fully complete. The most common missing items are: - Bank account details for receiving payouts - Identity verification documents - Business address or tax information Complete all required steps in the Stripe onboarding wizard to enable charges. Only workspace Owners and Admins can manage Stripe connections. If you see "Permission denied" in OnSeason, ask your workspace owner to configure the integration. Failed Payments "Card declined" The guest's bank rejected the transaction. This isn't something you can fix — the guest needs to try a different card, contact their bank to authorize the transaction, or check that their card hasn't expired. OnSeason shows the payment as "Failed" in the booking details. "3D Secure failed" The guest didn't complete the additional verification step required by their bank. They need to try booking again and complete the 3D Secure challenge — usually a code sent to their phone or a confirmation in their banking app. "Payment expired" The authorisation expired before the reservation could be confirmed in your PMS. This can happen if your PMS takes too long to respond. The guest was never charged. They may need to rebook. "Insufficient funds" The guest's card doesn't have enough available funds. They need to add funds to their account or use a different payment method. Payout Issues "Payouts not arriving" Payouts typically take 2-7 business days depending on your country and bank. To check on a payout: open your Stripe Dashboard (click "Open Stripe Dashboard" from your integration page) and go to Payouts to see the status and expected arrival date. If a payout is past its expected date, contact Stripe support through their dashboard. "Payout failed" Your bank account details may be incorrect. Open your Stripe Dashboard and verify your bank account information under Settings > Bank accounts and scheduling. "Payout on hold" Stripe may hold payouts for new accounts during an initial review period. This is standard practice for fraud prevention and typically resolves within a few days. Check your Stripe Dashboard for details on any holds. Refund Issues "Refund not processed" Refunds can take 5-10 business days to appear on the guest's card statement, even after the refund is initiated. Check the booking detail page in OnSeason for the current refund status. "Partial refund amount incorrect" Review the refund amount on the booking detail page. If you believe the amount is wrong, contact OnSeason support with the booking reference code. Still Need Help? If you're experiencing an issue not covered here: Check your Stripe Dashboard directly for detailed error messages and account notifications Contact OnSeason support with your workspace name and booking reference code (format: ON-XXXXXX) Never share your Stripe Secret Key with anyone, including OnSeason support. Your publishable key (starting with pk_) is safe to share if needed for troubleshooting.

Financial Dashboard Overview

The Finance section in your dashboard gives you a complete picture of your revenue, payouts, and costs. Click your profile icon in the top-right corner and select Finance & Billing to get started. You'll find five tabs along the top: - Overview — Financial summary and revenue trends - Payouts — Pending and completed payout transfers - Transactions — Full ledger of every financial event - Receipts — Your platform billing receipts - Billing — Subscription and payment method management Summary Cards The Overview page shows six key metrics: - Total Revenue — All-time, this month, and last month booking revenue - Pending Payouts — Amount awaiting transfer to your Stripe account - Completed Payouts — Total transferred this month - Platform Fees — All-time total of platform fees charged - Network Earnings — Commission earned from network bookings (5% per booking) - OTA Savings — Estimated savings compared to a typical 15% OTA commission If you're new and haven't received any bookings yet, you'll see a simplified view with a message explaining what each metric will track once activity begins. Revenue Trends Chart Below the summary cards, the Revenue Trends chart visualises your booking revenue over time. Use the period selector to switch between: - Week — Daily breakdown for the current week - Month — Daily breakdown for the current month - Year — Monthly breakdown for the current year Permissions Access to financial data requires the FINANCIALS_VIEW permission. By default, workspace Owners and Admins have this permission. If you can't see the Finance section, ask your workspace Owner to check your role. To understand every transaction in detail, head to the Transactions tab where you can browse, filter, and inspect individual ledger entries.

Understanding the Ledger

What Is the Ledger? The ledger is a complete, chronological record of every financial event in your workspace — bookings, fees, refunds, commissions, and payouts. Every entry is append-only and immutable: once recorded, it cannot be edited or deleted. Ledger entries are permanent. If a correction is needed (for example, reversing a commission), the system creates a new reversal entry rather than modifying the original. This ensures a complete audit trail. Navigate to Finance > Transactions to view the ledger. Browsing Transactions The Transactions page shows a paginated table with 20 entries per page. Each row displays: - Date — When the event occurred - Type — A colour-coded badge indicating the entry type - Description — What happened (e.g., booking code, transfer reference) - Amount — Green for credits, red for debits - Balance — Running balance after this entry Entry Types Each transaction has a type that tells you what kind of financial event it represents: - Booking Revenue (green) — Revenue received from a guest booking - Network Commissions (green) — Your 5% commission from a network property booking - Platform Fee (grey) — OnSeason's platform fee deducted from revenue - Refund (red) — A refund issued to a guest - Commission Reversal (red) — Reversal of a previously earned commission - Transfer/Payout (blue) — Funds transferred to your Stripe account Network Commission Split When a guest books a network property through your site, the revenue splits three ways: 90% to the property owner (the PM who owns the listing), 5% to you (the PM whose booking site was used), and 5% to the OnSeason platform. Your 5% share appears as a Network Commissions entry in your ledger. Filtering and Searching Use the toolbar above the table to narrow results: - Type filter — Filter by: All Transactions, Booking Revenue, Network Commissions, Platform Fees, Refunds, or Transfers - Date range — Pick a start and end date to see entries within a specific period - Search — Search by booking code or reference to find a specific transaction Active filters appear as badges. Remove them by clicking the filter badge or resetting all filters. Transaction Details Click any row to open the detail sheet. It shows: Type and Amount with the entry badge, Balance After (your running balance after this transaction), Description (full description of the event), Date & Time (exact timestamp), Reference ID (links to the related booking or commission record), Entry ID (unique identifier for this ledger entry), and an immutable record badge confirming the entry cannot be changed. What's Next? To understand how your earnings reach your bank account, see Payouts & Transfers.

Payouts & Transfers

How Payouts Work Payouts transfer your earned commissions from OnSeason to your connected Stripe account. Navigate to Finance > Payouts to see your payout status. Payouts are processed daily at 6:00 AM UTC. Your commission earnings from network bookings are automatically transferred to your connected Stripe account. Pending Payouts The Pending Payout card at the top of the page shows what's waiting to be transferred: - Total pending amount — The sum of all commissions not yet paid out - Expected payout date — When the next transfer will happen (shown as "Today", "Tomorrow", or a specific date) - Breakdown — Number of network commissions included and the commission rate (5% per booking) - Net payout — The final amount that will be transferred If there are no pending commissions, you'll see "No pending payouts" with a note that the next payout will appear once you have earnings from network bookings. Completed Payouts Below the pending card, you'll find a table of all completed payouts showing: - Date — When the payout was processed - Type — Network Commission or Booking Revenue - Amount — Total transferred - Commissions — Number of commissions included in this payout - Destination — Your Stripe account (shown as the last 4 digits) - Status — A green "Completed" badge or red "Failed" badge Payout Details Click any completed payout to open the detail sheet: - Stripe Transfer ID — The unique transfer identifier (click to copy) - Status — Completed or Failed - Date & time — Exact timestamp of the transfer - Amount — Total payout amount - Commissions Included — A table listing each commission with its date and amount - Payout Summary — Number of commissions, commission rate (5%), and net payout Viewing in Stripe For more details about your payouts, transfers, and bank deposits, click the "Open Stripe Dashboard" button. This opens the Stripe Express dashboard in a new tab where you can see your full transfer and deposit history directly from Stripe.

Exporting Financial Data

Exporting Your Data You can export your financial data as CSV files for accounting, tax reporting, or record-keeping. The export button is available in the Finance section header. Exports use CSV format, which opens directly in Excel, Google Sheets, Numbers, and most accounting software. How to Export - Open the Export dialogue — Click the Export button in the top-right corner of any Finance page. - Select what to export — Choose one of three export types: Ledger Entries (all transactions — bookings, fees, refunds, commissions, transfers), Payouts (completed payout transfers to your Stripe account), or Invoices (your platform billing invoices). - Set a date range (optional) — Pick a start and end date to export only a specific period. Leave empty to export all records. - Click Export — Your CSV file downloads automatically. Large Exports Most exports download immediately. If your export contains more than 1,000 rows, it runs as a background job instead: You'll see a confirmation that the export is processing You'll receive a notification when the file is ready to download. The CSV includes a summary section with the export parameters. Who Can Export The export button is only visible to users with the FINANCIALS_EXPORT permission. By default, workspace Owners and Admins have this permission. If you don't see the Export button, ask your workspace Owner to check your role. Tips for Accountants - Export Ledger Entries for a complete transaction history with amounts, types, and dates - Export Invoices for a record of what OnSeason has billed your workspace - Use the date range filter to match your accounting period (monthly, quarterly, or annual) All amounts are shown in your workspace's currency