WooCommerce integration

Connect Kafene to your store

Add lease-to-own at checkout — no coding required. Install the plugin, copy your keys from the Merchant Portal, paste them into WooCommerce, connect the webhook, then mark which products customers can lease.

Before you start, have these ready
• Admin access to your WordPress / WooCommerce site• A Kafene Merchant Portal login• The Kafene plugin file (.zip)
1
Install

Add the Kafene plugin to WordPress

In WordPress, go to Plugins → Add New → Upload Plugin, choose the Kafene .zip file, and click Install Now. Then open WooCommerce → Settings → Payments, find Kafene in the list, and click Manage to open its settings. (You’ll switch Kafene on for shoppers later, once setup is complete.)

WooCommerce admin — Payments
Kafene listed in WooCommerce payment providers with a Manage button
2
Get your keys

Copy your connection details from the Merchant Portal

Sign in to the Kafene Merchant Portal in a separate tab. In the top-right corner, click your account name and choose App Configurations.

  1. Click Add Configuration.
  2. Set Configuration Type to woocommerce and pick your Store.
  3. The portal reveals your Merchant ID, Store ID and API key. Use the copy icons — keep this dialog open for the next step.
Merchant Portal — account menu
Account dropdown menu in the Kafene Merchant Portal showing App Configurations
Add Configuration — Step 1 of 2
Add Configuration step 1 dialog showing Merchant ID, Store ID and API key
3
Connect

Paste your keys into WooCommerce

Back on the Kafene settings page from Step 1, tick Enable Kafene Checkout, then paste the Merchant ID, Store ID and API Key into the matching fields. Click Save changes. Then copy the read-only Webhook URL at the bottom — you’ll need it in the final step.

WooCommerce admin — Kafene settings
Kafene plugin settings in WooCommerce with Merchant ID, Store ID, API Key and Webhook URL fields
4
Webhook

Connect the webhook and confirm

Return to the open Add Configuration dialog and click Next Step. Paste the Webhook URL you copied into Your Store WooCommerce URL, then click Add Configuration. To verify, click Edit on your store — you’ll see the green “Integration active. Events are syncing in real time.” confirmation.

Add Configuration — Step 2 of 2
Add Configuration step 2 dialog with the store WooCommerce URL field
Edit Configuration — connected
Edit Configuration dialog showing Integration active, events syncing in real time
5
Merchandise

Mark which products are leasable

Only items you mark as leasable will offer Kafene at checkout. Your account manager will share a list of items that aren’t eligible for leasing. You can update products one at a time or in bulk.

One product at a time

Open the product under WooCommerce → Products, scroll to Product data, and tick Leasable with Kafene on the General tab. Click Update.

WooCommerce admin — Edit product
Product data panel in WooCommerce with the Leasable with Kafene checkbox ticked
Several at once

In the Products list, select the items, open Bulk actions, choose Set as Kafene Leasable and click Apply. Use Remove as Kafene Leasable to take items back out.

WooCommerce admin — Products · Bulk actions
WooCommerce Products list with the Bulk actions menu open showing Set as Kafene Leasable

That’s it — you’re connected

Kafene now appears as a payment option at checkout. Shoppers can start using lease-to-own right away.

Before you launch

Test in staging first

Run a few test applications in the staging environment to confirm the flow works end to end before switching to production. Use the staging environment URL and the staging credentials your account manager provides.

For staging you’ll get two Store IDs — one that always approves and one that always denies — so you can test both decision paths. Applications processed in staging are not valid and should never be fulfilled.

Input validation rules

Date of birthApplicant must be at least 18 and under 100. Outside that range, Kafene returns a Bad Request and the application is knocked out.
NameNo numeric characters. Submission is blocked with a validation error if numbers are present.
Phone numberExactly 10 digits — “Phone number must be 10 digits.”
SSNNo more than 9 digits — “SSN must be exactly 9 digits.”
AddressPick a complete address from the autocomplete dropdown (street, city, 2-letter state, 5-digit ZIP). The ZIP must match the state — “The zipcode provided does not match the selected state.”
Use unique test data
  • Give each application entirely unique values — name, email, SSN and phone.
  • For the bank account, use the Stripe test numbers: routing 110000000, account 000123456789.
  • No Gmail address? The “+” trick (e.g. [email protected]) gives unique emails to one inbox.
What the test environment does
  • No SMS is sent in staging. To see notifications or test contract signing, use the email notifications instead.
  • Staging does send real emails when a valid address is used — only use addresses you control.

Troubleshooting

Unexpected decisions? Change the SSN, phone or name to keep the application unique.

Inconsistent results between attempts? Earlier applications and users persist in the system and affect outcomes — generate fresh test data for each run.

Reference

After you go live

How Kafene orders move through WooCommerce, and how to handle changes once a lease is in progress.

Order statuses

Pending payment

The order is created while the customer completes their application and lease agreement. If Kafene denies the application, the order stays here until the customer picks a different payment method.

Processing

The customer has signed their lease agreement and the order is ready to be fulfilled.

Completed

The customer has received their items. Once an order is marked completed, it becomes eligible for funding.

Cancellations & cart adjustments

Cancellations and adjustments made in WooCommerce do not automatically update the lease agreement. Cancel or adjust the lease from your Kafene Merchant Portal. For a lease that is already Processing or Completed, contact our support team to make the change.