When to use this
Use CKO-03 home-drop delivery when:- The subscriber’s building is already mapped in kurnl (has a building record with units), but the specific unit does not yet have a switch port assigned
- You want subscribers to commit before you dispatch a technician
- Payment is deferred until after installation is confirmed
How it works
The key difference from direct delivery: there is nojob_id in the response — provisioning hasn’t started. The subscription stays in PENDING_INSTALL state until a technician confirms the physical installation.
Step-by-step
1. Configure your checkout URL
Same as direct delivery — kurnl Marketplace redirects to yourexternal_checkout_url. For home-drop buildings, the redirect includes unit_id instead of location_hash:
| Parameter | Description |
|---|---|
unit_id | UUID of the specific building unit the subscriber selected |
plan_version_id | UUID of the plan version |
service_provider_document_id | Your provider UUID |
2. Collect subscriber details
For home-drop, payment timing is flexible:- Card on file now, charge later — collect a card at checkout but don’t charge until the installation is confirmed. This is kurnl’s default behaviour when you use kurnl-managed billing.
- Defer entirely — collect nothing at checkout, send a payment link after installation.
3. Call kurnl after signup
job_id — provisioning has not started.
4. Dispatch a technician
kurnl firessubscription.pending_install to your webhook URL. This is your trigger to schedule the installation. Store the subscription_id — your technician will need it to confirm the install.
The subscription shows as PENDING_INSTALL in your dashboard until confirmed.
5. Confirm installation (technician step)
When the physical fibre drop is installed and the port is patched, call the confirm-install endpoint from your field system or manually from the dashboard:6. Activation
After the subscriber pays via the Stripe link, kurnl activates the subscription and firessubscription.activated to your webhook.
Webhook events
| Event | When |
|---|---|
subscription.pending_install | Immediately after your callback — trigger to schedule install |
subscription.activated | After subscriber pays — internet is live |
provisioning.completed | SSH provisioning finished — port is configured |
provisioning.failed | SSH provisioning failed — contact support |
Handling unit availability
A unit can only have one pending or active subscription at a time. If you call the endpoint for a unit that already has aPENDING_INSTALL subscription, you get a 409 conflict. Check the unit’s status before presenting it as available in your checkout.
You can query unit status via the kurnl dashboard or by checking the building’s unit list in your dashboard.