The Paddle Payment Gateway add-on accepts payments through Paddle’s merchant-of-record platform — customers pay via an embedded checkout overlay powered by Paddle.js v2, while Paddle handles tax compliance, invoicing, and global payment methods in 200+ countries.

Pricing: This is a paid add-on, available from the Larapen Marketplace.

Key Features

  • Paddle.js v2 checkout overlay — Customers pay via Paddle’s embedded overlay directly on your site. No redirect away from your checkout page. Supports credit/debit cards, PayPal, Apple Pay, Google Pay, and local payment methods.
  • Merchant of record — Paddle acts as the merchant of record, handling VAT/sales tax collection and compliance worldwide. You receive net payouts.
  • Webhook-driven confirmation — Order status updates are confirmed via signed webhooks (HMAC-SHA256) for reliable payment processing, even if the customer closes their browser.
  • Refund support — Process full or partial refunds directly from the admin panel via the Paddle Adjustments API. Refund statuses (approved, pending, rejected) are tracked automatically.
  • Encrypted credentials — API key, client-side token, and webhook secret are encrypted at rest using Laravel’s Crypt::encryptString(). Never stored in plain text.
  • Sandbox and production — Switch between Paddle sandbox and production environments from the admin panel. Sandbox tokens start with test_, live tokens start with live_.
  • Customer linking — Stores Paddle customer IDs linked to user accounts for repeat purchases.
  • Payment gateway contract — Implements the Larapen PaymentGatewayInterface, integrating seamlessly with the E-Shop checkout flow.

Admin Panel

SectionDescription
SettingsConfigure Paddle API key, client-side token, webhook secret, seller ID, environment (sandbox/production), and currency. All sensitive credentials stored encrypted.

Payment Flow

  1. Customer selects “Paddle” at checkout. An informational message appears.
  2. Form is submitted via AJAX. The server creates a Paddle transaction via the API.
  3. Paddle.js overlay opens with Paddle.Checkout.open() using the transaction ID.
  4. Customer completes payment within the overlay (cards, PayPal, Apple Pay, etc.).
  5. On checkout.completed, the customer is redirected to the return URL for confirmation.
  6. Paddle also sends a transaction.completed webhook as a reliable backup.

Webhook Events

EventAction
transaction.completedMarks the order as paid and creates a shop transaction record.
transaction.payment_failedMarks the payment as failed with error code.
adjustment.createdUpdates order status to refunded if the adjustment is an approved refund.
adjustment.updatedSame handling as adjustment.created for refund status changes.

Configuration

SettingDescription
API KeyPaddle API key for server-side API calls (transactions, refunds). Stored encrypted.
Client-Side TokenToken for initializing Paddle.js on the frontend. Sandbox tokens start with test_. Stored encrypted.
Webhook SecretSecret key for verifying Paddle webhook signatures (HMAC-SHA256). Stored encrypted.
Seller IDYour Paddle seller/vendor ID. Required for Paddle.js initialization.
Environmentsandbox for testing or production for live payments.
CurrencyCurrency code (e.g., USD, EUR, GBP). Should match your shop currency.

Dependencies

Required: The E-Shop add-on must be installed and active. The Paddle add-on registers as a payment gateway via the PaymentGatewayInterface contract and is automatically discovered by the shop’s payment system. The paddle/paddle-php-sdk Composer package is required.

Setup Guide

  1. Install and activate the E-Shop add-on first.
  2. Install the Paddle PHP SDK: composer require paddle/paddle-php-sdk.
  3. Install and activate the Paddle add-on.
  4. Go to Paddle > Settings in the admin panel.
  5. Enter your API key, client-side token, and seller ID from the Paddle Dashboard.
  6. Create a webhook in Paddle Dashboard pointing to https://yoursite.com/paddle/webhook and enter the webhook secret.
  7. Paddle will appear as a payment option during checkout.

Ideal for

  • SaaS businesses and digital product sellers wanting automated tax compliance.
  • International e-commerce sites needing multi-currency support with automatic VAT handling.
  • Businesses wanting a merchant-of-record solution that simplifies global selling.
  • Sites selling to EU customers needing automated VAT MOSS compliance.

Was this article helpful?

Thank you for your feedback!

Still need help? Create a support ticket

Create a Ticket