Title: PAY.JP for WooCommerce
Author: payjp4woocommerce
Published: <strong>October 28, 2026</strong>
Last modified: October 28, 2026

---

Search plugins

![](https://ps.w.org/payjp-for-wc/assets/banner-772x250.png?rev=3770714)

![](https://ps.w.org/payjp-for-wc/assets/icon.svg?rev=3770714)

# PAY.JP for WooCommerce

 By [payjp4woocommerce](https://profiles.wordpress.org/payjp4woocommerce/)

[Download](https://downloads.wordpress.org/plugin/payjp-for-wc.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/payjp-for-wc/#description)
 * [Reviews](https://wordpress.org/plugins/payjp-for-wc/#reviews)
 *  [Installation](https://wordpress.org/plugins/payjp-for-wc/#installation)
 * [Development](https://wordpress.org/plugins/payjp-for-wc/#developers)

 [Support](https://wordpress.org/support/plugin/payjp-for-wc/)

## Description

**PAY.JP for WooCommerce** integrates the [PAY.JP](https://pay.jp/) v2 Payment Widgets
into your WooCommerce store, enabling you to accept credit card payments and PayPay
payments securely and easily.

Raw card data never touches your server. The PAY.JP payments.js widget handles card
entry entirely in a PCI DSS compliant iframe, keeping your integration simple and
your compliance scope minimal.

### Key Features

**Credit Card Payments**

 * Embedded PAY.JP v2 Payment Widgets (no redirect, PCI DSS compliant)
 * Save cards to customer accounts for faster repeat checkout
 * Full and partial refunds directly from the WooCommerce order screen

**PayPay Payments**

 * Embedded PayPay widget via PAY.JP v2 Payment Widgets
 * Seamless in-page payment experience
 * Full and partial refunds directly from the WooCommerce order screen

**Subscriptions**

 * WooCommerce Subscriptions compatible for automatic recurring billing
 * Saved card via PAY.JP Setup Flow powers subscription renewals

**Developer & Store Friendly**

 * Block Checkout (WooCommerce 8.3+) and Classic Checkout both supported
 * HPOS (High-Performance Order Storage) compatible
 * Multisite compatible
 * Test mode / Live mode toggle — no code changes required
 * Webhook processing for `payment_flow.succeeded`, `payment_flow.payment_failed`,
   and `refund.created` events
 * Clean uninstall — removes all plugin data and options on deletion

### How It Works

 1. The checkout page loads the PAY.JP payments.js widget from PAY.JP’s CDN.
 2. The customer enters card details (or selects PayPay) entirely within the secure
    widget.
 3. PAY.JP returns a Payment Flow ID to your server — raw card data never reaches WordPress.
 4. WooCommerce processes the order and the plugin completes the payment via the PAY.
    JP v2 API.

### Requirements

 * WordPress 6.9 or later
 * WooCommerce 9.0 or later
 * PHP 8.3 or later
 * A [PAY.JP account](https://pay.jp/) (free to register)

### External Services

This plugin connects to the following external services. By using this plugin you
agree to their respective terms and privacy policies.

### 1. PAY.JP API

Used to create and manage Payment Flows, process payments, issue refunds, and manage
saved payment methods.

 * **Endpoint:** `https://api.pay.jp/v2`
 * **When called:** At checkout when a payment is initiated, on order completion,
   on refund, and during webhook processing.
 * **Data sent:** Payment Flow ID, order amount, currency, and (for saved cards)
   PAY.JP Customer ID. Raw card numbers are **never** sent to your server or to 
   the API directly from WordPress.
 * **Privacy Policy:** https://pay.co.jp/privacy
 * **Terms of Service:** https://pay.jp/legal/tos

### 2. PAY.JP payments.js (CDN)

The PAY.JP payments.js script is loaded from PAY.JP’s CDN to render the secure card
entry and PayPay widget on the checkout page. This is the standard PCI DSS compliant
integration method (equivalent to Stripe.js for Stripe).

 * **Script URL:** `https://js.pay.jp/payments.js`
 * **When loaded:** On any checkout page where PAY.JP is an available payment method.
 * **Data handled:** Card details entered by the customer are tokenized entirely
   within this script and its iframe — they are never accessible to your WordPress
   site.
 * **Privacy Policy:** https://pay.co.jp/privacy
 * **Terms of Service:** https://pay.jp/legal/tos

## Screenshots

[⌊PAY.JP unified settings page — configure API keys, test/live mode, and webhook
secret.⌉⌊PAY.JP unified settings page — configure API keys, test/live mode, and 
webhook secret.⌉[

PAY.JP unified settings page — configure API keys, test/live mode, and webhook secret.

## Installation

#### Automatic Installation

 1. Log in to your WordPress admin panel.
 2. Go to **Plugins > Add New**.
 3. Search for “PAY.JP for WooCommerce”.
 4. Click **Install Now**, then **Activate**.
 5. Go to **WooCommerce > Settings > Payments** and configure PAY.JP.

#### Manual Installation

 1. Download the plugin ZIP from the WordPress.org plugin directory.
 2. Go to **Plugins > Add New > Upload Plugin** and upload the ZIP.
 3. Activate the plugin through the Plugins screen.
 4. Go to **WooCommerce > Settings > Payments** and configure PAY.JP.

#### Configuration

 1. Navigate to **WooCommerce > Settings > Payments**.
 2. Click **PAY.JP** to open the unified settings page.
 3. Enter your **Public Key** and **Secret Key** from the [PAY.JP dashboard](https://console.pay.jp/d/login).
 4. Set the mode to **Test** for development or **Live** for production.
 5. Copy the **Webhook URL** shown in the settings and register it in your PAY.JP dashboard
    under **Webhook**.
 6. Save changes and place a test order.

**Webhook URL format:** `https://yoursite.com/wp-json/payjp/v2/webhook`

## FAQ

### Where do I get my PAY.JP API keys?

Sign up or log in at [pay.jp](https://console.pay.jp/d/login), then go to **API**
in the dashboard. You will find your Public Key and Secret Key there. Use the test
keys during development and the live keys for production.

### Is this plugin PCI DSS compliant?

Yes. Raw card data never touches your server. All card entry is handled by the PAY.
JP payments.js widget loaded from PAY.JP’s CDN, which tokenizes the card data in
a secure iframe. Only a Payment Flow ID is sent to your server.

### How do I test payments?

Enable **Test Mode** in the plugin settings and use your PAY.JP test API keys. For
PayPay test payments, use one of the reserved test phone numbers: 080-1111-5912 
through 080-1111-5921. Each PayPay test transaction is capped at ¥100.

### Does this plugin support WooCommerce Subscriptions?

Yes. When a customer completes their first subscription payment, their card is saved
via PAY.JP Setup Flow. Subsequent automatic renewal payments are processed against
the saved PAY.JP Customer ID without requiring the customer to re-enter their card.

### Does this plugin support saving cards?

Yes. Customers can save cards to their account during checkout. Saved cards are 
stored as WooCommerce payment tokens backed by PAY.JP Customer IDs and PaymentMethod
IDs — no raw card data is stored in your database.

### How do I configure webhooks?

 1. In the PAY.JP for WooCommerce settings, copy the **Webhook URL** (`https://yoursite.
    com/wp-json/payjp/v2/webhook`).
 2. Log in to your PAY.JP dashboard and go to **Webhook**.
 3. Add the webhook URL and enable the following events: `payment_flow.succeeded`, `
    payment_flow.payment_failed`, `refund.created`.
 4. Copy the **Webhook Secret** from PAY.JP into the plugin settings and save.

### Does this plugin work with Block Checkout?

Yes. PAY.JP for WooCommerce supports both the Block-based Checkout (introduced in
WooCommerce 8.3) and the Classic Checkout shortcode.

### Is HPOS (High-Performance Order Storage) supported?

Yes. The plugin is fully compatible with WooCommerce HPOS and uses the WooCommerce
order meta API (`$order->get_meta()`, `$order->update_meta_data()`) exclusively.

### Can I process partial refunds?

Yes. Navigate to the WooCommerce order screen, click **Refund**, enter the amount
to refund, and click **Refund via PAY.JP**. Both full and partial refunds are supported.

### What happens to my data if I uninstall the plugin?

Uninstalling (deleting) the plugin removes all plugin options from your database.
Order meta is intentionally retained as a permanent payment record. PAY.JP customer
records remain on the PAY.JP side; manage or delete those from your PAY.JP dashboard.

### Is multisite supported?

Yes. The plugin is compatible with WordPress multisite. Each site in the network
uses its own PAY.JP API keys and settings.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“PAY.JP for WooCommerce” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ payjp4woocommerce ](https://profiles.wordpress.org/payjp4woocommerce/)

“PAY.JP for WooCommerce” has been translated into 1 locale. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/payjp-for-wc/contributors)
for their contributions.

[Translate “PAY.JP for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/payjp-for-wc)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/payjp-for-wc/), check
out the [SVN repository](https://plugins.svn.wordpress.org/payjp-for-wc/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/payjp-for-wc/) by
[RSS](https://plugins.trac.wordpress.org/log/payjp-for-wc/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

Initial release.

 * Credit card payments via embedded PAY.JP v2 Payment Widgets — no redirect, and
   raw card data never reaches your server.
 * PayPay payments via embedded PAY.JP v2 Payment Widgets.
 * Saved cards for faster repeat checkout, backed by PAY.JP Setup Flow and WooCommerce
   payment tokens.
 * WooCommerce Subscriptions support for automatic recurring billing with saved 
   cards.
 * Immediate capture or authorize only (capture when the order is marked Completed)
   for both credit card and PayPay.
 * Full and partial refunds from the WooCommerce order screen for credit card and
   PayPay orders.
 * Cancelling a WooCommerce order cancels the PAY.JP payment automatically, and 
   payments that were already captured are refunded automatically.
 * Orders paid with asynchronous methods such as PayPay are kept from WooCommerce’s
   automatic “unpaid order” cancellation while the payment is in progress, and are
   confirmed automatically once the result is known.
 * Webhook processing for `payment_flow.succeeded`, `payment_flow.payment_failed`,
   and `refund.created`. A notification that arrives after an order is already finalized
   is recorded as an order note and an admin email instead of changing the order
   status.
 * One shared settings page for API keys, test/live mode, and the webhook secret,
   with links to the PAY.JP dashboard and test card / PayPay test account information
   in test mode.
 * Block Checkout and Classic Checkout support.
 * HPOS (High-Performance Order Storage) and multisite compatible.
 * Clean uninstall that removes all plugin options.

## Meta

 *  Version **1.0.0**
 *  Last updated **4 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.9 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 8.3 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/payjp-for-wc/) and [Japanese](https://ja.wordpress.org/plugins/payjp-for-wc/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/payjp-for-wc)
 * Tags
 * [checkout](https://wordpress.org/plugins/tags/checkout/)[payment](https://wordpress.org/plugins/tags/payment/)
   [paypay](https://wordpress.org/plugins/tags/paypay/)[woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/payjp-for-wc/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/payjp-for-wc/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/payjp-for-wc/reviews/)

## Contributors

 *   [ payjp4woocommerce ](https://profiles.wordpress.org/payjp4woocommerce/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/payjp-for-wc/)