Concepts, value, and typical clone scenarios — less code.
Concepts, value, and typical clone scenarios — less code.
Preparing Ring Platform content
Preparing Ring Platform content
Preparing Ring Platform content
Ring Platform routes card, credit, native-token, and PayPal flows through PaymentConductor (lib/payments/conductor/). WayForPay is the primary PSP for Ukraine; Stripe and PayPal cover international rails. Wallet credit top-up is a live wallet_topup purpose. Public pool / DAO jar card and PayPal chip-ins use purpose public_pool_contribution (desk-oracle FX — not 1:1 fiat↔native). Membership recurring PayPal uses SubscriptionConductor (Subscriptions v1).
Rates and presentment denominations come from Ring Oracle (main_currency / native_token / credit_balance).
Browser handoff is Conductor CheckoutRedirect — architecture · WayForPay HPP.
Deep dive: PaymentConductor feature · Architecture · Ring Oracle · Public Pools & DAO Jars · WayForPay · SubscriptionConductor
Use Founder / Developer tabs in the docs sidebar to filter this page.
| Purpose | Description | PSP / rail |
|---|---|---|
store_order | Cart → checkout | WayForPay / Stripe / credit / native token / PayPal |
membership_upgrade | Role upgrade (e.g. SUBSCRIBER → MEMBER) | WayForPay / Stripe / native token / PayPal |
news_promotion | News Kingdom sponsored articles | WayForPay / Stripe |
wallet_topup | Fiat credit top-up (Card / PayPal tabs) | WayForPay or Stripe (PAYMENT_WALLET_TOPUP_PROCESSOR); PayPal when processor=paypal |
public_pool_contribution | DAO jar / public-pool card or PayPal chip-in | WayForPay / Stripe / PayPal → desk oracle → pledged_native_token |
| Internal credit |
WayForPay hosted Донати, Stripe submit_type=donate, and PayPal Donate SDK are not Ring jar SSOT. See Public Pools.
payment_transactions for store, membership, news, wallet top-up, and public-pool card chip-ins.PAYMENT_DEFAULT_PROCESSOR plus per-purpose overrides (including optional PAYMENT_PUBLIC_POOL_CONTRIBUTION_PROCESSOR).NEXT_PUBLIC_PAYMENT_STORE_ALLOW_PAYPAL=true). Manage cancel/history at /membership/manage.PAYPAL_* credentials./dao and docs FutureFeature widgets; builder payout when the jar fills (Public Pools).ring-config.json payment sectionSymbols below are examples — replace with your clone’s store.mainCurrency and tokens.nativeToken.symbol.
Jar fee map (separate key): publicPools.platformFeePercentByRole — see Public Pools.
Deep-dive: purposes, rails, and module paths including public_pool_contribution.
Depends-on: main_currency / native_token rates for checkout presentment and jar FX.
Same-workflow: DAO jar card chip-ins, desk FX, and builder payout.
Depends-on: WayForPay HPP env SSOT and HMAC for card jars.
Ring Platform routes card, credit, native-token, and PayPal flows through PaymentConductor (lib/payments/conductor/). WayForPay is the primary PSP for Ukraine; Stripe and PayPal cover international rails. Wallet credit top-up is a live wallet_topup purpose. Public pool / DAO jar card and PayPal chip-ins use purpose public_pool_contribution (desk-oracle FX — not 1:1 fiat↔native). Membership recurring PayPal uses SubscriptionConductor (Subscriptions v1).
Rates and presentment denominations come from Ring Oracle (main_currency / native_token / credit_balance).
Browser handoff is Conductor CheckoutRedirect — architecture · WayForPay HPP.
Deep dive: PaymentConductor feature · Architecture · Ring Oracle · Public Pools & DAO Jars · WayForPay · SubscriptionConductor
Use Founder / Developer tabs in the docs sidebar to filter this page.
| Purpose | Description | PSP / rail |
|---|---|---|
store_order | Cart → checkout | WayForPay / Stripe / credit / native token / PayPal |
membership_upgrade | Role upgrade (e.g. SUBSCRIBER → MEMBER) | WayForPay / Stripe / native token / PayPal |
news_promotion | News Kingdom sponsored articles | WayForPay / Stripe |
wallet_topup | Fiat credit top-up (Card / PayPal tabs) | WayForPay or Stripe (PAYMENT_WALLET_TOPUP_PROCESSOR); PayPal when processor=paypal |
public_pool_contribution | DAO jar / public-pool card or PayPal chip-in | WayForPay / Stripe / PayPal → desk oracle → pledged_native_token |
| Internal credit |
WayForPay hosted Донати, Stripe submit_type=donate, and PayPal Donate SDK are not Ring jar SSOT. See Public Pools.
payment_transactions for store, membership, news, wallet top-up, and public-pool card chip-ins.PAYMENT_DEFAULT_PROCESSOR plus per-purpose overrides (including optional PAYMENT_PUBLIC_POOL_CONTRIBUTION_PROCESSOR).NEXT_PUBLIC_PAYMENT_STORE_ALLOW_PAYPAL=true). Manage cancel/history at /membership/manage.PAYPAL_* credentials./dao and docs FutureFeature widgets; builder payout when the jar fills (Public Pools).ring-config.json payment sectionSymbols below are examples — replace with your clone’s store.mainCurrency and tokens.nativeToken.symbol.
Jar fee map (separate key): publicPools.platformFeePercentByRole — see Public Pools.
Deep-dive: purposes, rails, and module paths including public_pool_contribution.
Depends-on: main_currency / native_token rates for checkout presentment and jar FX.
Same-workflow: DAO jar card chip-ins, desk FX, and builder payout.
Depends-on: WayForPay HPP env SSOT and HMAC for card jars.
Ring Platform routes card, credit, native-token, and PayPal flows through PaymentConductor (lib/payments/conductor/). WayForPay is the primary PSP for Ukraine; Stripe and PayPal cover international rails. Wallet credit top-up is a live wallet_topup purpose. Public pool / DAO jar card and PayPal chip-ins use purpose public_pool_contribution (desk-oracle FX — not 1:1 fiat↔native). Membership recurring PayPal uses SubscriptionConductor (Subscriptions v1).
Rates and presentment denominations come from Ring Oracle (main_currency / native_token / credit_balance).
Browser handoff is Conductor CheckoutRedirect — architecture · WayForPay HPP.
Deep dive: PaymentConductor feature · Architecture · Ring Oracle · Public Pools & DAO Jars · WayForPay · SubscriptionConductor
Use Founder / Developer tabs in the docs sidebar to filter this page.
| Purpose | Description | PSP / rail |
|---|---|---|
store_order | Cart → checkout | WayForPay / Stripe / credit / native token / PayPal |
membership_upgrade | Role upgrade (e.g. SUBSCRIBER → MEMBER) | WayForPay / Stripe / native token / PayPal |
news_promotion | News Kingdom sponsored articles | WayForPay / Stripe |
wallet_topup | Fiat credit top-up (Card / PayPal tabs) | WayForPay or Stripe (PAYMENT_WALLET_TOPUP_PROCESSOR); PayPal when processor=paypal |
public_pool_contribution | DAO jar / public-pool card or PayPal chip-in | WayForPay / Stripe / PayPal → desk oracle → pledged_native_token |
| Internal credit |
WayForPay hosted Донати, Stripe submit_type=donate, and PayPal Donate SDK are not Ring jar SSOT. See Public Pools.
payment_transactions for store, membership, news, wallet top-up, and public-pool card chip-ins.PAYMENT_DEFAULT_PROCESSOR plus per-purpose overrides (including optional PAYMENT_PUBLIC_POOL_CONTRIBUTION_PROCESSOR).NEXT_PUBLIC_PAYMENT_STORE_ALLOW_PAYPAL=true). Manage cancel/history at /membership/manage.PAYPAL_* credentials./dao and docs FutureFeature widgets; builder payout when the jar fills (Public Pools).ring-config.json payment sectionSymbols below are examples — replace with your clone’s store.mainCurrency and tokens.nativeToken.symbol.
Jar fee map (separate key): publicPools.platformFeePercentByRole — see Public Pools.
Deep-dive: purposes, rails, and module paths including public_pool_contribution.
Depends-on: main_currency / native_token rates for checkout presentment and jar FX.
Same-workflow: DAO jar card chip-ins, desk FX, and builder payout.
Depends-on: WayForPay HPP env SSOT and HMAC for card jars.
| Spend existing credit balance (credit unit ↔ main currency accounting) |
| Internal |
| Native token | On-chain native-token payments (tokens.nativeToken.symbol) | Native token rail |
| Internal credit |
lib/payments/processors/credit-balance.processor.ts |
| Credit deduction |
| PayPal | lib/payments/processors/paypal.processor.ts | Orders v2 + webhook verify |
| Dispatcher | lib/payments/conductor/webhook-dispatcher.ts | Purpose routing + Subscriptions events |
| Webhooks | app/api/payments/{wayforpay,stripe,paypal}/webhook | Canonical PSP callbacks |
No WAYFORPAY_MERCHANT_ID. Templates: env.local.template, docker.env.template, docker-compose.template.yml.
Apply data/migrations/004_payment_transactions.sql before enabling the conductor in production.
See-also: wallet_topup fiat ledger vs desk oracle for jars.
{
"payment": {
"cardPaymentProcessor": "wayforpay",
"supportedMethods": ["wayforpay", "credit_balance", "native_token"],
"futureMethods": ["stripe", "paypal", "nft_gate"],
"gateways": {
"wayforpay": { "enabled": true, "feePercent": 2.5, "currency": "<main_currency>" },
"stripe": { "enabled": false, "feePercent": 2.9, "feeFixedCents": 30, "currency": "<main_currency>" },
"credit_balance": { "enabled": true, "feePercent": 0, "currency": "<main_currency>" },
"native_token": { "enabled": true, "feePercent": 0, "currency": "<native_token_symbol>", "label": "Tokens" }
}
}
}
Checkout / upgrade / promotion / wallet top-up
↓
lib/payments/conductor/payment-conductor.ts
↓
Processors: wayforpay.processor | stripe.processor | credit-balance.processor | native-token.processor | paypal.processor
↓
payment_transactions (PostgreSQL, migration 004)
↓
lib/payments/conductor/webhook-dispatcher.ts → handlers/* (+ PayPal Subscriptions lifecycle)| Spend existing credit balance (credit unit ↔ main currency accounting) |
| Internal |
| Native token | On-chain native-token payments (tokens.nativeToken.symbol) | Native token rail |
| Internal credit |
lib/payments/processors/credit-balance.processor.ts |
| Credit deduction |
| PayPal | lib/payments/processors/paypal.processor.ts | Orders v2 + webhook verify |
| Dispatcher | lib/payments/conductor/webhook-dispatcher.ts | Purpose routing + Subscriptions events |
| Webhooks | app/api/payments/{wayforpay,stripe,paypal}/webhook | Canonical PSP callbacks |
No WAYFORPAY_MERCHANT_ID. Templates: env.local.template, docker.env.template, docker-compose.template.yml.
Apply data/migrations/004_payment_transactions.sql before enabling the conductor in production.
See-also: wallet_topup fiat ledger vs desk oracle for jars.
{
"payment": {
"cardPaymentProcessor": "wayforpay",
"supportedMethods": ["wayforpay", "credit_balance", "native_token"],
"futureMethods": ["stripe", "paypal", "nft_gate"],
"gateways": {
"wayforpay": { "enabled": true, "feePercent": 2.5, "currency": "<main_currency>" },
"stripe": { "enabled": false, "feePercent": 2.9, "feeFixedCents": 30, "currency": "<main_currency>" },
"credit_balance": { "enabled": true, "feePercent": 0, "currency": "<main_currency>" },
"native_token": { "enabled": true, "feePercent": 0, "currency": "<native_token_symbol>", "label": "Tokens" }
}
}
}
Checkout / upgrade / promotion / wallet top-up
↓
lib/payments/conductor/payment-conductor.ts
↓
Processors: wayforpay.processor | stripe.processor | credit-balance.processor | native-token.processor | paypal.processor
↓
payment_transactions (PostgreSQL, migration 004)
↓
lib/payments/conductor/webhook-dispatcher.ts → handlers/* (+ PayPal Subscriptions lifecycle)| Spend existing credit balance (credit unit ↔ main currency accounting) |
| Internal |
| Native token | On-chain native-token payments (tokens.nativeToken.symbol) | Native token rail |
| Internal credit |
lib/payments/processors/credit-balance.processor.ts |
| Credit deduction |
| PayPal | lib/payments/processors/paypal.processor.ts | Orders v2 + webhook verify |
| Dispatcher | lib/payments/conductor/webhook-dispatcher.ts | Purpose routing + Subscriptions events |
| Webhooks | app/api/payments/{wayforpay,stripe,paypal}/webhook | Canonical PSP callbacks |
No WAYFORPAY_MERCHANT_ID. Templates: env.local.template, docker.env.template, docker-compose.template.yml.
Apply data/migrations/004_payment_transactions.sql before enabling the conductor in production.
See-also: wallet_topup fiat ledger vs desk oracle for jars.
{
"payment": {
"cardPaymentProcessor": "wayforpay",
"supportedMethods": ["wayforpay", "credit_balance", "native_token"],
"futureMethods": ["stripe", "paypal", "nft_gate"],
"gateways": {
"wayforpay": { "enabled": true, "feePercent": 2.5, "currency": "<main_currency>" },
"stripe": { "enabled": false, "feePercent": 2.9, "feeFixedCents": 30, "currency": "<main_currency>" },
"credit_balance": { "enabled": true, "feePercent": 0, "currency": "<main_currency>" },
"native_token": { "enabled": true, "feePercent": 0, "currency": "<native_token_symbol>", "label": "Tokens" }
}
}
}
Checkout / upgrade / promotion / wallet top-up
↓
lib/payments/conductor/payment-conductor.ts
↓
Processors: wayforpay.processor | stripe.processor | credit-balance.processor | native-token.processor | paypal.processor
↓
payment_transactions (PostgreSQL, migration 004)
↓
lib/payments/conductor/webhook-dispatcher.ts → handlers/* (+ PayPal Subscriptions lifecycle)