kurnl is built to be loosely coupled. You keep running your own storefront, cart, or billing system; kurnl handles subscriber creation and switch-port provisioning behind a small HTTP API that your developers call. There is nothing to install inside your stack.
No storefront plugin required. Integration is plain server-to-server HTTP — a redirect your page reads, a callback you fire when payment succeeds, and (if you bill directly) a suspend/restore call. It works the same whether your checkout is a WooCommerce store, a custom cart, or a billing platform like Stripe Billing. Your team owns the code and the release timeline; nothing of kurnl’s runs inside your site.

Choose your path first

Everything below the next table describes CKO-03, where the shopper starts on the kurnl marketplace. If your customers buy on your site, you want CKO-04 and a different set of calls — skip ahead to Provider-initiated.

What you build (CKO-03)

1

Read the handoff

A subscriber picks your plan on the kurnl marketplace and is redirected to your checkout URL with a session_id. Your page reads the session to learn which plan and location the subscriber chose.
2

Tell kurnl when payment succeeds

After the subscriber pays on your page, your backend calls one endpoint — POST /external-checkout/complete — with the session and the subscriber’s details. kurnl creates the subscriber and, depending on the building’s line type, either activates and provisions the switch port directly (first-line buildings) or creates a PENDING_INSTALL subscription with an operator install job (everything else) — see the CKO-03 guides.
3

Suspend / restore — only if you own billing

If you collect the recurring charge yourself, call POST /external-checkout/subscription-status from your billing lifecycle: suspend on a failed payment, restore when it recovers. kurnl mirrors the change on the port with no invoices or fees of its own.

End-to-end flow (CKO-03)

  • After payment (and after calling /complete), your store redirects the shopper back to the kurnl marketplace return URL with the session_id so they can watch provisioning progress — see Sell through WooCommerce.

Choose your integration path

Not every partner integrates the same way. Pick the path that matches how you sell and bill. For session-based /complete calls, the building’s line type decides the outcome: first-line buildings provision the port immediately, while second/third-line or unclassified buildings create a PENDING_INSTALL subscription plus an operator install job (no job_id in the response) — see Direct delivery and Home-drop delivery.
Unsure which path fits? Ask who owns the funnel. If the shopper reaches you from the kurnl marketplace, you want CKO-03 direct — read the direct-delivery guide end to end; the other CKO-03 variants are variations on the same three steps. If the shopper never touches the marketplace because your own site takes the order and the payment, you want CKO-04, and none of the session mechanics on this page apply to you. Selling through a WooCommerce store? See Sell through WooCommerce for the WooCommerce-specific choices on top of these APIs.

Authentication

Two headers cover every partner call. Both are issued from the provider dashboard: the API key on the API Key page (/api-keys), the shared webhook secret on the Checkout page (/checkout-settings). The partner API base is https://middleware.bso-projects.com/partner. See Authentication for the full guide and API Overview for base URLs and rate limits.

Before you go live

1

Try it in the sandbox

Exercise the full flow against safe, throwaway data before touching real subscribers or the switch. See Sandbox Setup.
2

Stand up a webhook endpoint

Point a webhook_url at your system so you receive subscription.activated, provisioning.completed, and provisioning.failed. Verify the HMAC signature — see Webhooks.
3

Decide who owns recurring billing

If kurnl bills, you’re done after /complete. If you bill, wire up suspend / restore so a failed payment actually cuts service.

Next steps

Direct checkout guide

The most common path, start to finish — session, callback, provisioning.

API Reference

Every partner endpoint with request/response shapes and error codes.

Webhooks

The events kurnl sends you, the payload envelope, and signature verification.

Sandbox

Test credentials and a safe environment to build against first.