Paywall namespace

Reference for public candidate-access offers.

Retrieve the public offers shown before a signed-in candidate begins checkout through board.me.access.

board.paywall.offers()

Returns the enabled public tiers. When the candidate-access paywall is disabled, the response is a valid list envelope with an empty data array.

Each PaywallOffer includes its public offerKey, label, billing copy, amount and currency, offer type, interval, and default state. Internal Stripe price IDs are not exposed.

Start checkout

Offer discovery is public. Checkout belongs to the authenticated candidate:

Pass the selected returned offer’s key unchanged. Keys are opaque: newer offers use plan IDs, while older offers may use legacy tier keys. Never derive a key from the billing interval. Mount the returned connected-account checkout kit as described by AccessCheckoutSession. Do not assume a lifetime offer has a recurring-subscription portal.

Errors and feature behavior

  • An empty offer list means the paywall is disabled or has no enabled public offers; render no checkout CTA.
  • Authenticated access methods can return paywall_disabled, paywall_offer_not_found, paywall_no_candidate_profile, or checkout-specific errors.
  • Reload entitlement state through board.me.access.grant after checkout instead of trusting a return query parameter.

See the Me namespace for checkout, polling, grants, and billing portal methods.