KDPika Licensing Sign inStart free
API v1
Show all languages
Browse documentation

Choose a page in the navigation drawer.

KDPika Licensing · API v1 Beginner

KDPika Licensing for WooCommerce

Install the official plugin, connect your workspace and deliver software licenses through your WooCommerce store.

On this page
Updated 2026-10-19 UTCDownload Markdown

Developers build software. KDPika handles licensing. Your WooCommerce store keeps checkout, payments, orders, customer accounts and customer communications. Buyers do not need a KDPika account.

What you will learn

  • Install a ready-to-use ZIP and connect automatically or manually.
  • Map simple products and individual variations to real license plans.
  • Deliver licenses, handle refunds and recover safely from interruptions.

Prerequisites

  • An active KDPika workspace with a software product and active license plan.
  • WordPress 6.5+, PHP 8.1+ with OpenSSL and WooCommerce 9.0+ on a public HTTPS address.
  • Permission to manage WooCommerce and approve the connection as a KDPika workspace owner or administrator.
  • HTTPS requests allowed in both directions between the store and KDPika. Both pretty and plain WordPress permalinks are supported.

You do not need a separate Store Integration Service, API scripts, JSON configuration, Composer, Node, SSH or manual cron setup. WooCommerce's normal background processing must be working.

Download and install

  1. Sign in to KDPika and open WooCommerce in the developer dashboard.
  2. Choose Download WordPress plugin to get kdpika-licensing-for-woocommerce.zip.
  3. In WordPress open Plugins → Add New → Upload Plugin. Choose the ZIP, install and activate it.
  4. Open [KDPika Licensing](/docs/v1/start/glossary#kdpika-licensing) in the WordPress administration menu.

The plugin declares HPOS compatibility and uses WooCommerce order CRUD, not legacy order-table queries. If WooCommerce is missing, activate it first; the plugin displays a dependency notice rather than starting fulfillment.

Automatic connection

  1. Click Connect to KDPika in the plugin.
  2. Sign in to KDPika if requested. Check the workspace, your email and the requesting WordPress address.
  3. Select [Sandbox](/docs/v1/start/glossary#sandbox) for your first test. Select only the software products that this store needs.
  4. Click Approve and return to WordPress.
  5. Confirm the connected workspace and environment in the plugin, then map a product.

The plugin exchanges a short-lived, single-use authorization code on the server using S256 PKCE. You do not copy account-wide keys. The store must prove control of its WordPress installation before a connection can be granted.

Manual connection

If automatic connection is unavailable:

  1. In the plugin, open Connect manually instead. Copy its exact WordPress address.
  2. In the KDPika WooCommerce dashboard, open Manual connection.
  3. Enter that address, select the environment and allowed software products, then generate a one-time setup credential.
  4. Paste the credential into the plugin and choose Verify & connect within 15 minutes.

The setup credential is shown once, tied to that store address and usable once. After connection, both methods have the same scoped licensing functionality. Saved credentials are encrypted and are never displayed again. Reconnect the same installation to rotate credentials without deleting its mappings or licenses.

Map products and variations

Open KDPika Licensing → Products to search your WooCommerce catalog. Enable licensing, choose the software product / license plan from the fetched list, select fulfillment timing and save. Use the filter above the plan list to find a product or plan quickly. No internal IDs need to be entered.

Alternatively, use the KDPika Licensing tab in the WooCommerce product editor. For variable products, configure each variation separately in its variation panel or the plugin product list. A parent mapping is not inherited by variations.

  • When paid: issue after WooCommerce confirms payment and the order is Processing or Completed; suitable for virtual/downloadable goods.
  • When completed: wait for Completed even if payment is already confirmed; suitable for physical fulfillment.
  • Quantity: one license per purchased unit, with a maximum of 50 licensed units per order. Fractional quantities require review.

The order line saves the mapping that applied when it was created. Later product edits do not silently change old orders. Invalid/deleted software plans or mismatched mappings stop for review instead of issuing a different license. Existing historical orders without a saved mapping are not blindly backfilled.

License issuance and delivery

The store queues eligible order changes asynchronously. KDPika retrieves a fresh signed order proof from that exact store, checks its connection and mappings, and commits the license and encrypted delivery reference in one database transaction. Repeated notifications, retries and concurrent workers reuse the centrally unique entitlement.

In Settings, choose delivery through:

  • WooCommerce customer emails.
  • My Account order details for the order owner.
  • Guest order details protected by WooCommerce's secure order key.

When background fulfillment finishes after the original order email, the store sends a native Software licenses WooCommerce email. It does not deliberately send a second license email if the original customer order email already included the keys. Configure that message in WooCommerce → Settings → Emails; its templates can be overridden by the merchant's theme in the usual WooCommerce template locations. Mail acceptance is not a guarantee of inbox placement, and interrupted mail delivery must be reviewed before any manual resend.

Full keys do not appear in public API replies, frontend JavaScript or diagnostics. Store administrators can see the relevant keys in the order administration screen. KDPika does not create another buyer portal or send a competing buyer email for these store licenses.

Subscriptions and renewals

WooCommerce Subscriptions is a separate paid extension, not WooCommerce core and not included in this ZIP. When installed, the plugin uses its native subscription and order APIs.

  • A confirmed initial payment creates the subscription-item entitlement.
  • Confirmed renewals reuse that license and synchronize its exact paid-period end, rather than adding an arbitrary number of days on every webhook.
  • Payment failures can preserve a configurable 0–14-day grace period, defaulting to three days.
  • A hold unrelated to a confirmed payment failure suspends the license without inventing a grace entitlement.
  • Pending cancellation preserves already-paid access until the recorded paid end.
  • Verified payment recovery can restore eligible access; a store administrator's manual suspension is not silently undone by a resynchronization.
  • Revoked/cancelled terminal licenses cannot be automatically restored.

Paid subscription periods take precedence over the ordinary plan duration for these subscription entitlements. Ambiguous subscription-item matching, unsupported schedule states, missing paid-period evidence and changes to a different mapped software product/plan stop for administrator review. The plugin does not guess a prorated license migration or change the customer's payment subscription itself.

Refunds and cancellations

Store stateLicense behavior
Unpaid/pending orderNo new license
Full order refundRevoke the licenses belonging to that order's mapped items
Line-item quantity refundRevoke only the refunded units; other units/items remain unchanged
Unrelated refunded productDo not revoke the other mapped products
Amount-only or ambiguous partial refundRequire review; do not revoke every license by assumption
Failed/cancelled order with an existing one-time entitlementSuspend recoverably rather than creating another license

Generic gateway disputes are not treated as universally available WooCommerce events. If a payment extension does not expose a reliable order/refund state, review the payment and use the authorized license controls. The plugin does not implement another payment gateway.

Recovery and diagnostics

Open Orders for fulfillment state, safe retry and resynchronization. Network errors retry with bounded exponential backoff and jitter. Persistent failures remain visible as Needs attention; a paid order's recovery record is not silently discarded.

Open Diagnostics to test the signed connection. Check HTTPS reachability, WordPress background processing, active mappings, the order's real payment/refund state and the selected environment. If WordPress security salts changed or the store moved, reconnect that installation. Changing the browser's success URL cannot authorize a license.

The plugin automatically reconciles recent order changes through WooCommerce APIs. Reconciliation checks current evidence; it never blindly issues a new key merely because a local response was lost. Use Licenses to search/filter masked records and perform confirmed suspend, eligible restore or permanent revoke actions.

Security notes

Each store has a separate revocable credential limited to approved software products and its own licensing operations. It cannot access other developers' stores or change platform billing. Signed requests bind method, route, timestamp, nonce and exact body. Replay checks and rate limits apply centrally and on private store endpoints.

KDPika processes only necessary store/order/item/subscription references, buyer email/name needed for licensing, and confirmed fulfillment state. Your store owns the buyer relationship and must provide its own privacy notices. Bank-card data is neither collected nor stored by this plugin.

Deactivate without deleting paid customer records. Uninstall removes local credentials but retains operational mappings/recovery data and encrypted order delivery records. Disconnect in KDPika to revoke server access; uninstall does not cancel customers' WooCommerce subscriptions. Keep private backups and apply your retention obligations.

Testing status and Live checklist

The initial candidate was installed from its actual ZIP on native local WordPress 7.1.3 and WooCommerce 11.2.1 with HPOS. Verified cases include real bidirectional local HTTP authorization, mapping, unpaid refusal, multi-unit issuance, duplicate/retry safety, concurrent processing, quantity refund, private order delivery and WooCommerce email rendering. The local payment state was set through WooCommerce test CRUD; no genuine payment-gateway charge or real inbox delivery is claimed.

The commercial WooCommerce Subscriptions extension and your actual hosting/theme/payment-plugin combination still require hands-on testing. Automated tests are not the owner's final approval.

Before enabling Live:

  1. Complete a Sandbox order using your actual store payment plugin's test mode. A Sandbox KDPika connection does not automatically switch the store's payment gateway to test mode.
  2. Verify the buyer receives the correct key through your chosen delivery channels.
  3. Repeat notifications, retry a temporary interruption and verify that no second key appears.
  4. Refund one unit and a full order; confirm unrelated items retain access.
  5. If using WooCommerce Subscriptions, test initial payment, ordinary/early renewal, failure/grace/recovery, cancellation, expiration and a plan switch. Do not offer a lifecycle that remains unverified for your store.
  6. Confirm least-privilege product permissions, restore/revoke behavior, privacy and backup policies.
  7. Connect the store to Live only when its own payments and your eligible KDPika plan are ready. Existing Sandbox licenses do not become Live by changing a selector.

Legacy integrations

The previous developer-operated service reference remains available for existing installations. It is not required for the official plugin. Do not run two independent issuers for the same WooCommerce order.

Expected result

One approved license entitlement per eligible purchased unit, safely reused after duplicate notifications or retries. The buyer finds the correct private key through your WooCommerce store, without creating a KDPika account.

Common mistakes

Do not use a Live payment gateway just because the KDPika connection says Sandbox. Do not install both the official plugin and the legacy issuer for the same order. Map variations individually, retain saved order mappings, and never delete the recovery queue to hide a failed operation. An API receipt is not proof of license delivery or inbox placement.

Troubleshooting

If connection fails, confirm the exact public HTTPS WordPress address, administrator permissions, allowed software products and matching environment. For queued orders, use Diagnostics and the per-order recovery actions described above. If no payment or license action is available, contact hi@kdpika.com with the non-sensitive order reference and error code; never include keys, credentials or buyer payment data.

Next steps

Follow the Sandbox and Live checklist above with your actual store. Test your chosen email templates and customer-account setup before inviting buyers. Owner hands-on approval is still required before this candidate is treated as finally accepted.

Was this page helpful?

Choose an answer

Do not include personal data, license keys or credentials. Retained for up to 30 days. This is not a support inbox.

Search documentation

Arrow keys to move, Enter to open, Escape to close. Search stays in your browser.

Cookie settings