PayPal
Audience:
Low-code EngineersSkill Prerequisites:
Actions,Tokens,PayPal business account
The PayPal add-on takes payments through PayPal. Its actions send the user to PayPal to pay once or start a subscription, look up a payment's details, cancel a subscription, and read the notifications PayPal sends about payments and subscriptions.
The add-on is installed separately as the DnnSharp.PayPal package, and needs the PAYPAL feature in your license. If it isn't licensed, the actions fail with a "not licensed" error. If you don't see the PayPal actions, such as PayPal - Express Checkout, the add-on isn't installed.
Choosing an action
| Action | What it does | Use it to |
|---|---|---|
| PayPal - Express Checkout | Sends the user to PayPal to pay once or approve a subscription, then runs actions for success, error, pending or cancel when they come back. | Take a PayPal payment for an order, or sign a user up for a monthly or yearly subscription. |
| Get Transaction Details | Asks PayPal for the details of a transaction by its ID and saves the answer as JSON in a token. | Confirm a payment on your server before you record it, or show its status and amount. |
| Cancel Express Checkout Subscription | Cancels a PayPal subscription by its profile ID, so the user isn't billed again. | Let users cancel their own subscription, or cancel one from an admin listing. |
| PayPal - Parse IPN Request | Turns each field of a PayPal Instant Payment Notification (IPN) into a token. | Build your own IPN handler in an API endpoint, for example to record every subscription payment. |
Credentials and the sandbox
- Classic API credentials. Every action except PayPal - Parse IPN Request needs the API username, password and signature of your PayPal account's classic API (NVP/SOAP) credentials. PayPal considers this API legacy, and new PayPal accounts may not get classic API credentials. The parameters support tokens, so keep the credentials in one place instead of typing them into every action.
- Go Live. With Go Live off, requests go to the PayPal sandbox, which needs sandbox credentials and sandbox accounts. Turn it on, with your live credentials, only when you're ready to take real payments. Lookups and cancellations must use the same setting as the original payment or subscription.
Saving IDs for later
PayPal - Express Checkout returns the IDs the other actions need, in output tokens that are only available inside its result lists. Save them there:
- The transaction ID of a one-time payment is what Get Transaction Details needs. An IPN about a payment also has it, as
txn_id. - The subscription profile ID, for example
I-DF3S35GWL16Y, is what Cancel Express Checkout Subscription needs. Get Transaction Details doesn't accept it.
There's no action to refund a PayPal payment.
Subscription notifications
PayPal reports later subscription events, such as payments, suspensions and cancellations, with IPNs. You can handle them in two ways:
- Inside PayPal - Express Checkout. Its On Subscription Payment Received, On Subscription Suspended and On Subscription Canceled lists run when an IPN arrives. The subscription data is only kept for 7 days, so this doesn't cover later monthly or yearly payments.
- In your own API endpoint, with PayPal - Parse IPN Request. Use this for subscriptions that run longer than 7 days.
Neither way checks with PayPal that the notification is genuine, and anyone can post to these addresses. Before you grant access or mark an order as paid, confirm the payment with Get Transaction Details, and skip notifications you've already processed.
Checking the result
- Get Transaction Details and Cancel Express Checkout Subscription don't fail when PayPal returns an error, and they have no On Error list. Check
ACKin the JSON, or the error code token, before the actions that follow. - PayPal - Express Checkout only runs On Error for failures after the user comes back from PayPal. Errors when the button is clicked, such as wrong credentials, fail the action instead. If PayPal answers
SuccessWithWarning, no list runs.
For other payment providers, see the Authorize.Net and Stripe add-ons. For all add-ons, see Add-ons.
Revised 10/02/2026