Transparency
This page is the public companion to our product: how money moves, who gets paid, and what we still need to ship before real withdrawals. It is updated as the platform evolves.
NaijaBook is built around sponsor-funded campaign rewards: when brands support the network, a bounded share can flow to eligible creators and spaces under published rules—think qualified participation in ad-supported rooms, not paying people simply to scroll or spam a feed.
For what members can do in the app—spaces, structured posts, polls, profile points, and more—see the home FAQ and the features section on the landing page.
Today, self-serve ad wallet top-ups can run through PayPal (typical for UK businesses) or Paystack where enabled; recurring placements may still use Stripe Checkout when the platform Stripe account is active and approved. Larger partners can use invoices or insertion orders. As we scale, we may combine several of these patterns:
If a card rail is unavailable for your market, use Contact or Advertise so we can route you to a manual or regional option.
The earnings dashboard may still show illustrative figures until campaign attribution and transfer jobs are fully wired.
Stripe powers Connect and many Checkout/Billing paths in code, but the live platform account must stay approved by Stripe—if review fails, treat Stripe as legacy or test-only until you replace or re-apply with counsel. PayPal and Paystack back ad wallet top-ups in parallel: set PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRET, PAYPAL_WEBHOOK_ID, and PAYPAL_MODE; add a PayPal webhook for PAYMENT.CAPTURE.COMPLETED at {your-app}/api/paypal/webhook. For Paystack, set PAYSTACK_SECRET_KEY and webhook {your-app}/api/paystack/webhook. Redeploy after env changes.
When Stripe is active, these variables and dashboard steps are required for Connect and webhooks (never expose secrets in the browser):
STRIPE_SECRET_KEY — server APISTRIPE_WEBHOOK_SECRET — signing secret for POST /api/stripe/webhookSUPABASE_SERVICE_ROLE_KEY — server-only, for storing Connect account idsNEXT_PUBLIC_APP_URL — correct site origin for Connect return URLsNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY for client-side Stripe.js laterIn the Stripe Dashboard: enable Connect (Express), add a webhook endpoint pointing at {your-app}/api/stripe/webhook, and subscribe to events such as checkout.session.completed and account.updated (extend as you add products). Use separate test and live keys and webhook secrets per environment.
Spaces-first layout, reunion and diaspora focus, and monetisation tied to trusted rooms rather than a single feed optimised only for ad inventory.
Registered businesses and vetted partners. Categories that break community standards are restricted or blocked.
We do not sell private message content to advertisers. Targeting should use stated interests, spaces, and aggregated cohorts, aligned with the privacy policy (to be finalised with counsel).
Each space has a reach tag: Nigeria-first, pan-African, or global. You can filter by reach in Spaces and Discover; Naija spaces anchor local trust while global spaces are intentionally broad.
Listing prices are stored in minor units (e.g. kobo, cents) plus an ISO currency code. Your profile country helps suggest a default; sellers can choose from supported currencies where the form allows.
Terms of Service and Privacy Policy (including Nigeria and international users), VAT / withholding where applicable, and creator tax reporting (including Connect tax forms where required).
Last updated with the product. For commercial conversations, use Contact or Advertise.