Configure supported payment providers and webhooks
Prerequisites and authority
Use the official organization interface. Customer procedures need account ownership; provider configuration and manual grants need authorized operator access.
Configure supported payment providers
This operator procedure covers Bachs, Paystack, Flutterwave and supported manual recording paths. Provider availability also depends on saved configuration, organization capabilities and the installed edition.
- Establish the provider account and verify the organization's payout/compliance setup.
- Enter test credentials through the protected BryanNet configuration.
- Confirm the stable public API origin and obtain the exact callback/webhook route from the selected release.
- Configure that route at the provider and preserve its required authentication/signature behavior.
- Complete Payment gateway sandbox verification sandbox acceptance.
- Replace test credentials with the approved live configuration and verify the environment.
Do not publish secret keys in frontend code, screenshots or documentation. Keep provider identifiers and public checkout links distinct from server credentials.
Bachs configuration
In Settings > Integrations, select Sandbox or Live for Bachs. Enter the organization ID from the Bachs account, the matching secret API key and webhook signing secret. The organization ID identifies the merchant account; it is not a BryanNet customer or subscription ID. Credentials are stored separately for each environment. Blank secret fields retain the saved values.
Register the stable public HTTPS API origin followed by /api/v1/payments/webhooks/bachs in Bachs. Use that environment's signing secret. Do not point the webhook at the admin/customer frontend or a private LAN address. BryanNet verifies the raw request signature before recording an event in the shared durable webhook inbox used by Bachs, Paystack and Flutterwave.
Save the settings before running Test. The provider credential test checks the saved configuration/account access; it does not charge a customer, validate webhook delivery or prove a completed checkout. Enable Bachs payments only after the sandbox acceptance below. Switching environments does not turn a sandbox payment into a live payment.
Bachs offers supported card, bank-transfer and crypto methods according to the merchant account and checkout. Customer website checkout uses an overlay; Telegram uses the hosted checkout link; mobile uses an external checkout and return flow. Only backend-reported available providers appear in the customer selector.
For crypto, BryanNet retains the plan's naira price. The verified checkout must match that price and reference exactly; its linked charge is checked separately in the asset/network Bachs reports, including full payment and zero remaining amount. Do not compare a USDT amount directly with naira or use a settlement balance as the plan price. New/unsupported assets fail verification rather than being guessed. See Payment status and gateway callbacks.
Local sandbox website checkout can return through overlay events without a public browser redirect; the webhook still needs public reachability. Live web checkout requires a public HTTPS customer return URL. Never substitute an insecure or private return URL to bypass this requirement.
Callbacks must reach BryanNet even when the customer's browser closes. Browser redirects help the customer return but must not alone establish success. Retries of the same provider event must not create duplicate economic outcomes.
Use a stable HTTPS endpoint. A temporary development tunnel can break callbacks when its address changes. An interactive access wall can also block the provider.
For manual payment, record the actual receipt/reference and use the supported assignment/payment treatment. Complimentary and imported access should remain distinguishable from paid transactions. Preserve failed/pending records for investigation. Use Payment duplicated, stale or webhook never processed for reconciliation problems.
Related guides
Related guides: Purchase a plan and understand activation, Credentials, devices and concurrent logins, Telegram customer onboarding and commands, Website registration account linking and recovery, Payment succeeded but internet did not activate.