Skip to content

How to Pay Affiliates Automatically With PayPal (Pro)

PayPal is the easier of the two gateways because it pays to an email address. Your affiliates give you one address and nothing else, and they never leave your site.

You need a PayPal business account, and the Payouts feature enabled on it. On a live account PayPal reviews that request once, so ask for it early rather than on the day you want to pay everyone.

Open the PayPal developer apps page and create a REST API app, or open one you already have.

Two things there decide whether this works:

  • The toggle at the top of that page switches between Sandbox and Live. The credentials you copy belong to whichever side you are on, and they never work against the other one.
  • Under the app features, tick Payouts.

Go to DevDiggers Plugins → Affiliates → Configuration → Payouts and scroll past the withdrawal methods and the automatic payout rules.

The PayPal Payouts section with its connection status and credential fields

If you would rather follow the steps on the screen, How to connect PayPal expands into the same four steps with the links included.

The How to connect PayPal steps expanded

Set Environment to match the side you copied from. Start on Sandbox, always. A wrong client ID in sandbox costs you a red notice, and a wrong one in live costs you a failed payout that an affiliate is waiting on.

The PayPal Environment dropdown highlighted

Paste the Client ID and the Client Secret, then save the page.

If you would rather keep the secret out of the database, define it in wp-config.php instead:

define( 'DDWCAF_PAYPAL_CLIENT_SECRET', 'your-paypal-secret' );

The field then turns read-only and says where the value is coming from.

Once credentials are saved, a Test connection button appears beside the status line. Press it.

The status line tells you where you stand without any guessing:

Status What to do
Not connected The credentials are missing or blank
Credentials saved, gateway switched off Tick Enable PayPal Payouts
Connected in test mode Nothing is wrong, you are on sandbox
Connected and paying live Real money will move

A failed test prints PayPal’s own error message, which is almost always a sandbox key against live or the Payouts feature not enabled yet.

Tick Enable PayPal Payouts. Then scroll back up and check that PayPal is ticked in the Withdrawal Methods table, or your affiliates cannot choose it.

The withdrawal methods table with bank transfer, PayPal, wallet and Stripe Connect rows

Take one small pending payout from an affiliate whose method is PayPal, open it, and set Payout Status to Completed.

Watch what comes back rather than assuming it worked. The payout will land on Completed, Processing or Failed, and the Gateway Log on the same screen carries the provider’s own words either way.

Almost nothing. They open Settings → Withdrawal Info on their dashboard, choose PayPal as their withdrawal method and save a valid PayPal email address.

The Payout Readiness panel on the same screen tells them if they have missed it.

The Payout Readiness panel on the affiliate settings section

A failed payout is never recorded as paid, so the money and the ledger stay in step. Fix whatever the gateway log names, usually a mistyped email, then open the payout and press Send through gateway now. That retry ignores the attempt ceiling.