Direct payment gateways (Stripe and PayPal)
You can sell credits straight through Stripe Checkout or PayPal without running a store plugin. You paste your keys and a webhook URL, and employers pay on the hosted Stripe or PayPal page, so card details never reach your site.
If you already sell through WooCommerce, PMPro or MemberPress, use the WooCommerce, PMPro or MemberPress guides instead. You do not need a direct gateway as well.
Where the settings live
Section titled “Where the settings live”- Go to WP Career Board -> Settings -> Credits.
- Scroll to the Direct payment gateways card.
- Open the Stripe or PayPal block. A gateway you turned on shows an Enabled badge.
Each block shows its own Webhook URL, ready to copy.
Set up Stripe
Section titled “Set up Stripe”| Field | Notes |
|---|---|
| Enable Stripe | Turns the gateway on. Stripe is available only when this is on and a secret key is set. |
| Mode | Test or Live. |
| Publishable key (active mode) | From Stripe -> Developers -> API keys. |
| Secret key (active mode) | From the same screen. |
| Webhook signing secret | The whsec_... value Stripe shows after you add the webhook endpoint. |
| Post-purchase redirect | Optional. Where the buyer lands after paying. |
| Cancel-redirect URL | Optional. Where the buyer lands if they cancel. |
Add the Stripe webhook
Section titled “Add the Stripe webhook”The webhook URL looks like this:
https://yourdomain.com/wp-json/wbcom-credits/v1/wp-career-board/webhook/stripe- In Stripe go to Developers -> Webhooks -> Add endpoint and paste the URL.
- Select these events:
checkout.session.completedcharge.refundedcheckout.session.async_payment_succeeded(needed if you accept delayed payment methods, so credits land when the payment clears)
- Copy the endpoint’s signing secret into Webhook signing secret.
The webhook credits the account even if the buyer closes the page after paying, and it is how refunds made in Stripe reach the ledger.
Set up PayPal
Section titled “Set up PayPal”| Field | Notes |
|---|---|
| Enable PayPal | Turns the gateway on. PayPal is available only when this is on and a Client ID and Client secret are set. |
| Mode | Sandbox or Live. |
| Client ID | From developer.paypal.com -> Apps & Credentials (Merchant REST app). |
| Client secret | From the same app. |
| Webhook ID | The ID of the webhook you create in the PayPal app (below). Required. |
- Create a Merchant REST app at developer.paypal.com -> Apps & Credentials and copy the Client ID and secret into the fields above.
- In App settings -> Features, tick Accept payments and Refund.
- In App settings -> Webhooks, add the webhook URL below and copy its Webhook ID into the Webhook ID field.
https://yourdomain.com/wp-json/wbcom-credits/v1/wp-career-board/webhook/paypalSelect these events:
PAYMENT.CAPTURE.COMPLETEDPAYMENT.CAPTURE.REFUNDEDCHECKOUT.ORDER.APPROVED(takes the payment for a buyer who approves in PayPal but never returns to your site)
What happens on a purchase
Section titled “What happens on a purchase”- The employer starts a credit checkout and is sent to the hosted Stripe or PayPal page.
- After payment, the gateway sends the webhook to your site. The signature is checked before anything is credited.
- The credits are added to the employer’s ledger as a
topupand the balance updates. - If you refund the payment from the provider dashboard, the credits that purchase gave are removed (a
deductionrow) and the employer gets a credit refund email.
A webhook delivered twice does not credit twice.
Test before you go live
Section titled “Test before you go live”For Stripe, set Mode to Test, use test-mode keys, and pay with the test card 4242 4242 4242 4242 (any future expiry, any CVC). Check that a topup row appears in the employer’s ledger.
For PayPal, set Mode to Sandbox and use a sandbox app and a sandbox buyer account.
Keep test and live credentials separate. Switching Mode to Live makes the next purchase a real charge.

