BNBstays
← All guides

For hosts

Host Guide

BNBstays is a direct booking and guest operations platform for short-term rental hosts. You list your property, guests book directly with you, and you keep the payment relationship β€” BNBstays never holds guest funds and never takes a per-booking commission.

This guide walks through the day-to-day: listing setup, payments, calendars, cancellations, guest operations, verification, and the rules that keep your account in good standing.

1. Account and tenant scope

  • Your account is a tenant. Listings, bookings, payment accounts, and payouts are scoped to your tenant β€” no other host can see or modify them.
  • Subscription status is tracked per tenant. If your subscription lapses, your listings stop being bookable but your data is preserved.
  • Each tenant connects its own payment provider accounts. Stripe is the primary provider today; Mercado Pago, Razorpay, PayPal, and Xendit are expansion providers that must stay host-owned and market-approved.
  • BNBstays takes $0 from guest booking payments. Your subscription covers the current BNBstays fee.

2. Subscription and billing

BNBstays charges a flat monthly subscription. No per-booking commission is deducted from guest payments.

BNBstays may later add host-billed usage fees, platform fees, or add-ons. If that happens, those fees are billed to you separately and are not deducted from guest checkout proceeds, refunds, or payouts.

Plans

PlanPriceListingsHighlights
Solo$9/mo1iCal sync, all payment providers, branded footer
Host$19/mo3Custom domain, no BNBstays branding
Pro$49/mo10Multi-user roles, advanced analytics

All plans include a 14-day free trial β€” no card required to start. The trial activates the moment your tenant is created and gives you Solo-tier limits. Pick a paid plan on /pricing whenever you're ready.

Subscribing

  1. Open Pricing (/pricing) and pick a plan.
  2. You'll be redirected to Stripe Checkout (subscription mode) to enter card details. Card data is handled by Stripe β€” BNBstays never sees or stores it. The price id you submit is validated server-side against an allowlist, so a tampered request can't swap in a $0 test price.
  3. On success, Stripe sends a signed webhook. We verify the checkout session id, mode (subscription), payment status (paid), and capture your Stripe customer id and subscription id on the tenant row. Your subscriptionStatus moves to ACTIVE and your planCode is set from the price you picked.
  4. You land back at Settings (/hosts/settings?billing=success) with a green ACTIVE badge and the plan shown.

If you close the Stripe tab mid-checkout nothing changes β€” your subscription status stays as it was.

Managing billing

Once subscribed, Settings shows a Manage billing button that opens the Stripe Customer Portal. Inside the portal you can:

  • Update or replace your card
  • View past invoices and receipts
  • Switch plans (Stripe prorates the difference)
  • Cancel at period end

Billing actions happen at Stripe β€” BNBstays is not the merchant of record for your subscription, so we don't store or modify card data on our side.

Subscription statuses

These are the values that can appear on your tenant row and what triggers each one.

StatusMeaningTrigger
TRIALING14-day free trial active.Tenant created.
ACTIVEPaid subscription in good standing.checkout.session.completed or invoice.paid.
PAST_DUERenewal charge failed. Stripe will retry.invoice.payment_failed.
SUSPENDEDListings hidden from browse and unbookable. Data preserved.customer.subscription.updated status unpaid/canceled, OR trial expiry cron.
CANCELEDSubscription canceled.customer.subscription.deleted.

Every transition writes an entry to the audit log (entityType: SUBSCRIPTION) with before/after state, the Stripe event id, and the price id, so you can reconstruct billing history.

Trial expiry and suspension

When your 14-day trial ends without a paid subscription, the timeout-trial cron job moves your tenant to SUSPENDED:

  • Listings stay visible to you in the dashboard but disappear from public browse and cannot accept new bookings.
  • Existing confirmed bookings are honored.
  • Your data is preserved.
  • Re-activate any time by subscribing to any plan on /pricing.

Plan limits and enforcement

Listing-create checks your planCode against the plans table:

  • Solo: 1 published listing
  • Host: 3 published listings
  • Pro: 10 published listings

If you hit the cap, publish is rejected with 402 QUOTA_EXCEEDED and a message pointing you to /pricing. Unpublishing an existing listing frees a slot. Listing drafts don't count against the cap β€” only published ones.

Tax

Subscription fees are SaaS revenue to BNBstays and may carry sales tax or VAT depending on your jurisdiction. Stripe Tax can automate calculation and collection once configured on the account β€” until then, tax is not added to checkout. Talk to a tax professional about your obligations before enabling collection.

3. Listing a property

  1. Create a property (physical address, timezone, occupancy tax settings).
  2. Create a listing under that property (title, photos, description, base nightly price, cleaning fee, currency, house rules, check-in instructions).
  3. Set availability either manually on the calendar or by connecting an iCal feed (Airbnb, Vrbo, Google Calendar) for automated sync.
  4. Pick a cancellation policy: Flexible, Moderate, or Strict. Guests see this before booking and it's enforced automatically.
  5. Publish. A listing only appears in browse results and is bookable once published.

Photos: use original images you own. Listings with stolen or stock photos are removed. Property verification may be required before publishing, enabling manual payments, or increasing limits β€” keep your address and tax settings accurate so review goes smoothly.

4. Payments

  • Merchant of record: you, the host. Guest checkout runs through your own connected payment provider account. BNBstays is the software layer, not the payment recipient.
  • No platform fee on bookings: we don't deduct anything from guest payments. Your subscription fee ($9–$49/month depending on tier) is billed separately to you as a SaaS charge.
  • Multiple providers: the platform is designed for multiple host-owned providers. Each provider handles its own KYC, payouts, and dispute handling. BNBstays does not custody funds.

Provider status

ProviderBest forStatusPayouts
StripeStripe-supported marketsPrimary connected-account providerPer Stripe's standard schedule
Mercado PagoLatin AmericaExpansion provider; seller-owned flow must be verified per marketMercado Pago account
RazorpayIndiaExpansion provider; marketplace/split flows require compliance reviewRazorpay account
PayPalGlobal wallet usersPlanned optional checkout railPayPal Business account
XenditSE AsiaExpansion provider for host-owned credentialsXendit account

Do not assume every listed provider is enabled in every country. BNBstays only launches a provider/market pair when host-owned payment flow, refunds, webhook behavior, and local compliance posture are understood.

How checkout picks a provider

When a guest checks out, BNBstays uses this order:

  1. Host-selected default provider for the listing (set in Settings).
  2. Tenant default provider based on country/currency.
  3. Manual/offline fallback only if you explicitly enable it.

Checkout will refuse payment if the selected provider account is missing, disconnected, restricted, or not charge-enabled.

Webhook verification

When a guest pays, the provider sends a signed event to BNBstays. We verify the checkout session id, amount, currency, payment status, and provider account identity against the booking row before flipping it to PAID. A forged or mismatched event cannot mark a booking paid.

Manual / offline payments

If you accept cash, bank transfer, or local rails outside your connected provider, mark the booking paid manually in the dashboard. You are responsible for collecting and reconciling those funds β€” BNBstays does not custody them.

Manual payments are higher risk. They may require host verification, property verification, guest disclosure, amount/reference audit fields, and support review limits before being enabled.

5. Managing bookings

  • Inbox: every booking request, guest message, and review lives in your dashboard. Messages are threaded per booking.
  • Statuses: PENDING (requested, awaiting payment) β†’ CONFIRMED (paid) β†’ COMPLETED (check-out passed) or CANCELLED. Refunds move a booking to REFUNDED.
  • Check-in instructions are only released to a guest whose booking is PAID and whose session email matches the booking email. Don't paste lock codes into pre-payment messages.
  • Rate-limited endpoints: booking creation and contact forms are rate-limited per IP to reduce spam. If you see "too many attempts" in your own testing, wait 10 minutes.

6. Calendar and availability

  • iCal sync runs every 30 minutes. Block a date in Airbnb or Vrbo and it blocks on BNBstays within the next sync window.
  • Double-booking protection: when a booking is created, the date range is atomically reserved. Concurrent booking attempts for the same dates resolve to exactly one winner.
  • Stay constraints: each listing has optional minimum and maximum night rules. Guests can't book a stay shorter or longer than the limits you set.

7. Cancellations and refunds

  • You set the cancellation policy per listing. BNBstays enforces it on the guest side; for host-initiated cancellations, you can refund in full or per policy from the dashboard.
  • Refunds are processed through your payment provider account. BNBstays does not net anything against the refund.
  • Repeated host-initiated cancellations of confirmed bookings may result in account suspension β€” when you confirm a booking, you commit to honoring it.

8. Trust and verification

  • Host KYC/KYB: each payment provider handles its own identity verification as part of onboarding. BNBstays may also verify host identity for trust and risk purposes. BNBstays verification controls publishing, manual-payment access, limits, and risk review.
  • Property verification: KYC alone does not prove you control the property you're listing. Keep address and tax fields accurate; fraudulent or copied listings are removed.
  • Guest verification: guests book under their real name and email. If a guest's email bounces or the charge is flagged, the booking is held for your review before any check-in details are released.

9. What BNBstays is not

  • Not a payment facilitator. We do not custody guest funds, hold balances, schedule payouts, or net fees against bookings. All payment processing runs through your own provider account.
  • Not an OTA marketplace. You own the guest relationship, pricing, house rules, tax obligations, refund policy, and local compliance.
  • Not a full PMS replacement yet. BNBstays handles direct booking and guest operations, but it does not replace every accounting, owner statement, housekeeping, maintenance, or channel-management workflow.
  • Not a property manager. You own guest communication, check-in, maintenance, and on-the-ground operations.
  • Not an insurance underwriter. Property damage, theft, and liability sit between you and your guest (and your own insurance). Chargebacks are disputed between the guest, the host, and the payment provider β€” BNBstays is not a party.

10. Cancellation policy cheat sheet

Refunds are computed against the booking total (no separate fee deductions). All windows are calendar days before check-in.

PolicyFull/partial refund windowInside window
Flexibleβ‰₯ 1 day out β†’ 100%0%
Moderateβ‰₯ 5 days out β†’ 100%0%
Strictβ‰₯ 7 days out β†’ 50%0%
Super strictβ‰₯ 30 days out β†’ 50%0%

The exact refund at any moment is shown to the guest on cancellation and to you in the booking detail view.

11. Getting help

  • For dashboard bugs, webhook errors, or subscription issues, open a ticket from your account.
  • For tax, legal, or insurance questions, talk to a professional β€” BNBstays staff cannot advise on per-jurisdiction STR rules.
  • For listing takedowns, fraud reports, or DMCA, use the contact form with evidence attached.

Last updated: 2026-07-25