All providers

PayPal

Buyers pay through PayPal and you receive the funds. Coin Moebius never holds the money.

What you need

FieldWhat it does
Client IDIdentifies your PayPal app on API calls. Paired with the secret.
Client secretThe secret half of API auth. With the Client ID, it creates the order. Secret.
Webhook IDIdentifies the webhook PayPal signs, so we can verify each delivery.
Success URL / Cancel URLWhere the buyer lands after paying or backing out.

Why we ask for each field

Client ID

Identifies your PayPal app on API calls. It works only when paired with the Client secret.

Client secret

The private half of API auth. With the Client ID, it lets us create the order, so the payment runs through your account.

Webhook ID

How we confirm a webhook is genuinely from PayPal: PayPal identifies each webhook by an ID, and we use it to ask PayPal directly whether a given message is authentic. That stops anyone from forging a "paid" event.

Success and Cancel URL

Plain settings: where the buyer lands after paying or backing out. Not secret.

Set up

  1. Create a free developer account (no payment)

    PayPal’s developer site gives you sandbox test accounts at no cost, including a fake business account and a fake buyer.

    1. Sign in at developer.paypal.com.
    2. Use the Sandbox / Live toggle to switch environments. Set up sandbox first, then repeat in live.
  2. Create an app and copy its credentials

    Go to Apps & Credentials, open or create an app, and copy the Client ID and Client secret. The sandbox app and live app each have their own pair.

    PayPal developer dashboard, Apps and Credentials screen
    PayPal → Apps & Credentials
  3. Add the webhook
    1. In the same app, add a webhook.
    2. Set the webhook URL to your project webhook address (below).
    3. Subscribe to events. One-time payments: CHECKOUT.ORDER.APPROVED, PAYMENT.CAPTURE.COMPLETED, PAYMENT.CAPTURE.DENIED, PAYMENT.CAPTURE.DECLINED, PAYMENT.CAPTURE.REFUNDED, PAYMENT.CAPTURE.REVERSED, CUSTOMER.DISPUTE.CREATED. Subscriptions: BILLING.SUBSCRIPTION.ACTIVATED, BILLING.SUBSCRIPTION.UPDATED, BILLING.SUBSCRIPTION.CANCELLED, BILLING.SUBSCRIPTION.PAYMENT.FAILED, PAYMENT.SALE.COMPLETED. Extra events are harmless.
    4. Copy the Webhook ID PayPal assigns. Register a separate webhook in sandbox and in live.
    https://<your Coin Moebius host>/webhook/paypal/<your project id>
    PayPal app webhook configuration screen
    PayPal → your app → Webhooks
  4. Test with a sandbox buyer

    Sign in at www.sandbox.paypal.com with the sandbox buyer account from your developer dashboard and pay through a test checkout. No real money moves.

  5. Connect in the dashboard

    Add provider → PayPal. Enter Success URL, Cancel URL, and the Live group (Client ID, Client secret, Webhook ID). Add the optional Sandbox group to test. The Sandbox group is all-or-nothing: all three fields, or none. Live and sandbox are checked separately.

After you connect

Run one test payment before going live:

  1. Create a product and set its Environment to Testing. That runs the product on your sandbox credentials, so you can place a full order without moving money. (If you skipped the sandbox set, a Testing product falls back to live, so add it first.)
  2. Place the buy button on a page (a local HTML file works) pointed at your project.
  3. Complete checkout by paying with your sandbox buyer account.
  4. Open the Transactions tab. A new row appears, tagged Testing. When its status reaches succeeded, your credentials and webhook are both working end to end.

Switch the product Environment to Live when you are ready for real payments.

Troubleshooting

Start with Verify. In the dashboard, click Verify (or Verify test credentials for sandbox) to check your client credentials.

Verify fails.

Re-copy the Client ID and Client secret. The sandbox app and live app have different pairs, so do not mix them.

Payment completes but the order stays pending.

The Webhook ID must come from the same app and environment as your client credentials. Live credentials need the live webhook ID. Confirm the webhook URL matches.

Confirm it end to end.

PayPal Developer Dashboard → Webhooks Simulator: send a sample event to your webhook URL, then watch the order update.

Good to know

Rotating secrets. Generate a new client secret anytime, then paste it in. Secret fields stay blank on edit.

Questions? [email protected]

Ready to connect a provider?

Pick the providers you already use. Buyers pay through your accounts, and you keep one buy button.