← Back to pricing

Billing transparency

Example checkout math: processor and network surcharges (especially on adult / high-risk merchants) are shown explicitly so customers know what is bank-imposed versus platform margin. The same breakdown component is meant for every paid flow.

CDN and edge egress are not implicitly “free unlimited” in infrastructure contracts — see the operator checklist for pass-through policy decisions. Integration notes: docs/PAYMENTS-INTEGRATION.adoc in the repo.

Simulate totals

Card + platform split

Subtotal$49.99

Stacked bar = card fees, platform fee, and estimates only (scaled to 100% of surcharges).

LinePartyUSD% of total
Subtotal (goods or access)Goods / access$49.9973.2%
Processor discount feeProcessor / acquirer$6.459.4%
Processor fixed authorizationProcessor / acquirer$0.350.5%
Card network / high-risk program (estimated)Network$0.100.1%
Linx Photos platform fee (illustrative)Platform$4.005.9%
Tax / VAT (placeholder — jurisdiction dependent)Tax (estimate)$3.655.3%
Included monthly transfer (plan allowance)Infrastructure / CDN$0.000.0%
CDN / edge egress overage (42.00 GB beyond allowance)Infrastructure / CDN$3.785.5%
Customer total (illustrative)$68.32100%

Rates are placeholders for UI wiring. Adult / high-risk processing is typically much higher than mainstream — that difference is imposed by acquirers, not an arbitrary platform surcharge. Replace these numbers with your live processor contract and tax engine output.

API mirror (`POST /api/commerce/quote`)

Loaded once on mount in the browser so SSR stays simple. Reload the page after changing numbers to refresh the API mirror, or call POST /api/commerce/quote from your checkout code.

Paddle vs Centrobill + PayPal (what you asked)

Paddle is usually a merchant-of-record reseller: they are the seller on the receipt for many transactions, simplify VAT in supported cases, and pay you out. That can be great friction-wise, but it is not the same as “your brand is the merchant everywhere,” and acceptable-use rules may be tighter than a dedicated adult acquirer. This project wires Centrobill for the high-risk path and PayPal Orders for an SFW option—see docs/PAYMENTS-INTEGRATION.adoc.

Tax API demo (`POST /api/tax/quote`)

Default TAX_ENGINE=stub. Set TAX_ENGINE=taxjar + TAXJAR_API_KEY for live TaxJar.

PayPal SFW order (`POST /api/payments/paypal/create-order`)

Uses sandbox API base by default. Requires server env credentials. Response includes approveUrl for the buyer. With a valid guest email, the server stores a pending purchase row and returns purchaseId for capture + receipt email (needs Turso + RESEND_API_KEY for mail).

Capture (after PayPal approval)

Paste orderId from the response (or use the fields below after create). Calls POST /api/payments/paypal/capture-order.

Centrobill webhook URL (configure in Centrobill dashboard)

/api/webhooks/centrobill

Charge saved payment methods via POST /api/payments/centrobill/charge-on-file (server only; obtain paymentAccountId through Centrobill tokenization per their docs—do not POST raw PAN to Linx).

SVG data URL — no photograph pixels; auto follows site theme.

Mature content — preview hidden

Embed theme overrides

Light

Mature content — preview hidden

Dark

Mature content — preview hidden