Title: Verkkokauppapaja B2B Checkout for WooCommerce
Author: tomppasalmi
Published: <strong>October 4, 2026</strong>
Last modified: October 4, 2026

---

Search plugins

![](https://ps.w.org/verkkokauppapaja-b2b-checkout/assets/banner-772x250.png?rev
=3727288)

![](https://ps.w.org/verkkokauppapaja-b2b-checkout/assets/icon.svg?rev=3727288)

# Verkkokauppapaja B2B Checkout for WooCommerce

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

[Download](https://downloads.wordpress.org/plugin/verkkokauppapaja-b2b-checkout.0.3.2.zip)

 * [Details](https://wordpress.org/plugins/verkkokauppapaja-b2b-checkout/#description)
 * [Reviews](https://wordpress.org/plugins/verkkokauppapaja-b2b-checkout/#reviews)
 *  [Installation](https://wordpress.org/plugins/verkkokauppapaja-b2b-checkout/#installation)
 * [Development](https://wordpress.org/plugins/verkkokauppapaja-b2b-checkout/#developers)

 [Support](https://wordpress.org/support/plugin/verkkokauppapaja-b2b-checkout/)

## Description

Verkkokauppapaja B2B Checkout makes WooCommerce ready for Finnish business customers.
Everything described here is included in this plugin, with no limits, trials or 
license keys.

 * **“I am buying as a company” toggle** at checkout. The company fields are shown(
   and required) only for business customers.
 * **Business ID (Y-tunnus)** with format and checksum validation, with inline error
   messages in the block checkout.
 * **YTJ autofill:** the company name and address are fetched from the Finnish Patent
   and Registration Office’s free open data API (PRH YTJ API v3). Results are cached.
 * **EU VAT ID** derived automatically from the Y-tunnus (FI + 8 digits), with format
   validation.
 * **Buyer reference / PO number** (optional field).
 * Company details are shown in the **admin order view, order emails and the customer’s
   order view**, and are available to other plugins through `y_kassa_get_order_data()`
   and the `y_kassa_order_data` filter.
 * Works with both the **block checkout** (Additional Checkout Fields API) and the**
   classic checkout**. **HPOS compatible.**
 * **Privacy tools:** suggested privacy policy text and personal data export and
   erasure.
 * Developer friendly: add your own fields, checks and order data with filters (`
   y_kassa_checkout_fields`, `y_kassa_validation_result`, `y_kassa_meta_keys`, `
   y_kassa_display_rows`).
 * English source strings, ready for translation (Finnish translation via translate.
   wordpress.org).

#### Verkkokauppapaja B2B Checkout Pro (optional)

A separate, optional add-on is available for shops that need more: EU VIES VAT validation,
e-invoice (verkkolasku) address and operator fields, details on PDF invoices, warnings
or blocking for bankrupt/ceased companies, B2B-only mode, company details in My 
Account, a Business ID column in the orders list, a REST API field and admin editing.
This plugin works fully on its own without it. [More about Pro](https://verkkokauppapaja.fi/b2b-checkout)

#### External services

This plugin connects to one external service when a customer enters a business ID
at checkout:

**PRH open data YTJ API** (Finnish Patent and Registration Office), `https://avoindata.
prh.fi/opendata-ytj-api/v3/companies`. The business ID entered by the customer is
sent to look up the company’s public register data (name, address, VAT registration,
status). [Terms / licence (CC BY 4.0)](https://avoindata.prh.fi/en), [PRH privacy](https://www.prh.fi/en/presentation_and_duties/data_protection.html).

No other data (names, emails, addresses of the customer) is sent. Requests are made
from your server only when a business ID is entered or an order is placed, and results
are cached to minimise calls. Autofill can be turned off in the settings.

#### Privacy

 * Company details entered at checkout (Business ID, company name, VAT ID, buyer
   reference) are stored on the order and, for logged-in customers using the block
   checkout, on their customer profile (WooCommerce stores additional checkout fields
   there).
 * The YTJ lookup result (registered name, company status, time of check) is stored
   on the order.
 * The plugin adds a suggested text to **Settings  Privacy  Policy guide**, and 
   hooks into the WordPress personal data **export and erasure** tools: order data
   is included in WooCommerce’s order export/anonymisation, and customer profile
   data has its own exporter and eraser.
 * No cookies, tracking or data sent to the plugin author.
 * On uninstall, settings and cached lookups can be removed (opt-in); order data
   is kept because it is part of your accounting records.

## Screenshots

[⌊Block checkout (Finnish store): the Y-tunnus fills in the company name, address
and VAT ID from the Finnish business register (YTJ).⌉⌊Block checkout (Finnish store):
the Y-tunnus fills in the company name, address and VAT ID from the Finnish business
register (YTJ).⌉[

Block checkout (Finnish store): the Y-tunnus fills in the company name, address 
and VAT ID from the Finnish business register (YTJ).

[⌊Block checkout: inline error for an invalid Y-tunnus.⌉⌊Block checkout: inline 
error for an invalid Y-tunnus.⌉[

Block checkout: inline error for an invalid Y-tunnus.

[⌊Classic checkout (Finnish store) with the company details filled in from YTJ.⌉⌊
Classic checkout (Finnish store) with the company details filled in from YTJ.⌉[

Classic checkout (Finnish store) with the company details filled in from YTJ.

[⌊Order screen in the admin (Finnish): company details under the billing address.⌉⌊
Order screen in the admin (Finnish): company details under the billing address.⌉[

Order screen in the admin (Finnish): company details under the billing address.

[⌊Settings (Finnish admin).⌉⌊Settings (Finnish admin).⌉[

Settings (Finnish admin).

## Installation

 1. Upload the plugin and activate it (WooCommerce 8.9 or newer required).
 2. Go to WooCommerce  Settings  Verkkokauppapaja B2B and choose which fields are shown
    and required.
 3. Optional: add the suggested privacy policy text from Settings  Privacy  Policy 
    guide.

## FAQ

### Does it work with the block checkout?

Yes. Fields are registered with the WooCommerce Additional Checkout Fields API. 
On WooCommerce 9.9 and newer, WooCommerce itself shows and requires the company 
fields only when “I am buying as a company” is checked. On WooCommerce 8.9–9.8 the
plugin hides the fields itself and enforces the required fields when the order is
placed.

### Which versions are supported?

Tested with WooCommerce 8.9 and 11.1 on WordPress 6.5–7.1 and PHP 7.4–8.4, with 
both HPOS and legacy order storage.

### How do I read the data in my own code or integration?

Use `y_kassa_get_order_data( $order )` in PHP. It returns the Business ID, company
name, VAT ID, buyer reference and YTJ result for business orders (an empty array
for consumer orders).

### Is the VAT ID checked against VIES?

This plugin checks the format and derives the Finnish VAT ID from the Y-tunnus. 
Live validation against the EU VIES register is part of the optional Verkkokauppapaja
B2B Checkout Pro add-on.

### Is the lookup endpoint safe to expose?

The autofill uses a read-only REST route that only returns public register data.
It requires a nonce, is rate-limited per IP (60 lookups per 10 minutes, filter `
y_kassa_rate_limit`) and only ever calls the fixed PRH address.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Verkkokauppapaja B2B Checkout for WooCommerce” is open source software. The following
people have contributed to this plugin.

Contributors

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

[Translate “Verkkokauppapaja B2B Checkout for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/verkkokauppapaja-b2b-checkout)

### Interested in development?

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

## Changelog

#### 0.3.2

 * Changed: the optional Pro add-on link on the settings page now points to https://
   verkkokauppapaja.fi/b2b-checkout.

#### 0.3.1

 * Changed: the plugin is renamed to Verkkokauppapaja B2B Checkout for WooCommerce(
   slug and text domain `verkkokauppapaja-b2b-checkout`). Settings, order data and
   filters are unchanged.
 * Security: extra output in the admin order company details box is escaped late.
 * Removed: bundled translation files; translations are now loaded from translate.
   wordpress.org language packs.

#### 0.3.0

 * Changed: VIES validation, e-invoice fields, PDF invoice output, company status
   warnings, B2B-only mode, My Account company details, the orders list column, 
   the REST API field and admin editing moved to the optional Pro add-on. Existing
   order data stays on the orders (Business ID, VAT ID and buyer reference are still
   shown); with Pro installed, existing settings and e-invoice/VIES data carry over
   unchanged.
 * Fixed: block checkout text fields no longer show a placeholder on top of the 
   floating label.
 * New: filters for extensions (`y_kassa_checkout_fields`, `y_kassa_meta_keys`, `
   y_kassa_display_rows`, `y_kassa_has_toggle`, `y_kassa_script_data`, `y_kassa_company_response`).
 * New: a small, dismissible link to the Pro add-on on the settings page.

#### 0.2.0

 * New: edit B2B details on the admin order screen, with re-validation and VIES 
   re-check.
 * New: Business ID column (with VIES status) in the orders list, HPOS and legacy.
 * New: `y_kassa` object in the WooCommerce REST API orders endpoint (read/write).
 * New: company details in My Account, shared with classic and block checkout pre-
   fill.
 * New: field-level error messages in the block checkout.
 * New: dedicated company name field in the block checkout, required only for business
   customers.
 * New: privacy policy text, personal data exporter and eraser.
 * Improved: WooCommerce 8.9–9.8 support in the block checkout (fields hidden until
   the company toggle is checked).
 * Fixed: My Account company details not saving on WooCommerce 8.9–9.4.
 * Fixed: partial checkout updates on newer WooCommerce no longer trigger full order
   validation.
 * Security: remote calls use `wp_safe_remote_get` without redirects and with a 
   response size limit; input length limits on the lookup routes.

#### 0.1.0

 * First MVP.

## Meta

 *  Version **0.3.2**
 *  Last updated **10 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [b2b](https://wordpress.org/plugins/tags/b2b/)[woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/verkkokauppapaja-b2b-checkout/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/verkkokauppapaja-b2b-checkout/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/verkkokauppapaja-b2b-checkout/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/verkkokauppapaja-b2b-checkout/)