Tukang.com logo

Tukang.com × SteelSolution API Integration: Call Flow

Version: 1.0.0 · Last updated: 2026-08-05

This document describes how Tukang.com's installation-service platform integrates with SteelSolution's CMS across the customer's install journey, covering vendor matching, site-visit scheduling, cost estimation, installation, and completion.

This page and the API reference together are the authoritative description of Tukang.com's side of this integration. Where any other document disagrees with them, these two are correct.

Endpoint paths are shortened in the diagrams below. Every Tukang.com path is relative to /partners/steelsolution/v1, so step 2's POST /match is POST /partners/steelsolution/v1/match. Full paths are in the API reference.


Happy path

sequenceDiagram
    actor Customer
    participant SteelSolution as SteelSolution CMS
    participant Tukang as Tukang.com API

    Customer->>SteelSolution: 1. Find nearby vendors
    SteelSolution->>Tukang: 2. POST /match
    Tukang-->>SteelSolution: 3. Returns up to 5 vendors with site-visit cost
    Customer->>SteelSolution: 4. Pick vendor, pay site-visit fee
    SteelSolution->>Tukang: 5. POST /site-visits
    Tukang-->>SteelSolution: 6. Confirms site visit scheduled
    Tukang->>Tukang: 7. Vendor starts the site visit
    Tukang->>SteelSolution: 8. Status webhook: in_progress
    SteelSolution-->>Tukang: 9. Acknowledges
    Tukang->>Tukang: 10. Vendor completes the site visit
    Tukang->>SteelSolution: 11. Status webhook: visit_complete (no estimate yet)
    SteelSolution-->>Tukang: 12. Acknowledges
    Tukang->>Tukang: 13. Cost estimate is built (can be hours to days later)
    Tukang->>SteelSolution: 14. Status webhook: estimate_ready (quote, materials list, total service amount, RAB PDF URL)
    Customer->>SteelSolution: 15. Review estimate, decide to accept
    SteelSolution->>Tukang: 16. POST /site-visits/{id}/accept
    Tukang-->>SteelSolution: 17. Confirms estimate accepted, work in progress
    SteelSolution->>Tukang: 18. POST /site-visits/material-received
    Tukang-->>SteelSolution: 19. Confirms logged, vendor notified
    Tukang->>Tukang: 20. Vendor completes every RAB line item
    Tukang->>SteelSolution: 21. Status webhook: retention_started
    Tukang->>Tukang: 22. Final install sign-off
    Tukang->>SteelSolution: 23. Status webhook: install_complete
    SteelSolution-->>Tukang: 24. Acknowledges

Estimate rejected (replaces steps 15-17 above)

sequenceDiagram
    actor Customer
    participant SteelSolution as SteelSolution CMS
    participant Tukang as Tukang.com API

    Customer->>SteelSolution: 15. Review estimate, decide to reject
    SteelSolution->>Tukang: 16. POST /site-visits/{id}/reject
    Tukang-->>SteelSolution: 17. Confirms estimate rejected, site visit closed

No additional work needed (replaces steps 7-12 above)

Vendor determines the job is complete during the site visit itself, so no separate cost estimate is required. Same in_progress/visit_complete status webhooks as the happy path's steps 8 and 11 - the difference is nothing follows visit_complete, this branch ends here.

sequenceDiagram
    actor Customer
    participant SteelSolution as SteelSolution CMS
    participant Tukang as Tukang.com API

    Tukang->>Tukang: 7. Vendor starts the site visit
    Tukang->>SteelSolution: 8. Status webhook: in_progress
    SteelSolution-->>Tukang: 9. Acknowledges
    Tukang->>Tukang: 10. Vendor completes job outright
    Tukang->>SteelSolution: 11. Status webhook: visit_complete (terminal, no estimate follows)
    SteelSolution-->>Tukang: 12. Acknowledges

Outbound status webhook

All the outbound pushes shown above (steps 8, 11, 14, 21, 23) are the same one webhook call on SteelSolution's CMS, not separate endpoints - each carries a status value plus the full site-visit record (same shape as the GET /site-visits/{id} response in the API reference), fields not relevant to the current status are simply null.

Status valueFires when
in_progressVendor has started the site visit
visit_completeSite visit has ended. No estimate attached yet either way - jobs that don't need one stop here
estimate_readyThe cost estimate has been built and sent. Fires separately, later - can be hours to days after visit_complete, not the same call. Includes the quote, a materials list (each item with a Magento-recognizable ID), total service amount, and a RAB PDF URL
retention_startedEvery RAB line item has been marked complete by the vendor, before final install sign-off
install_completeInstallation work is fully finished

These are the values the webhook sends. GET /site-visits/{id} uses the same words, so a push and a status check taken at the same moment agree. It also returns two the webhook never sends: scheduled before work starts, and closed when the customer rejected the estimate. One limitation: on jobs that need a cost estimate, a status check answers in_progress between the visit_complete and estimate_ready pushes, so rely on the push in that window. Full table and the payload shape are in the API reference under "Status values" and "Outbound status webhook".

Material catalog sync (background)

Tukang.com periodically syncs SteelSolution's product catalog so vendors' cost estimates can reference current SteelSolution material pricing.

sequenceDiagram
    participant Cron as Tukang.com (scheduled sync)
    participant SteelSolution as SteelSolution CMS

    Cron->>SteelSolution: GET product catalog
    SteelSolution-->>Cron: Returns products (SKU, price, etc)
    Cron->>Cron: Update local catalog

Endpoints needed from SteelSolution

Only 2 endpoints are needed on SteelSolution's side, not one per event - see "Outbound status webhook" above for why. Both were specified by Kemana on 3 August 2026 and verified on their staging environment.

PurposeEndpointTrigger
Receive the status webhook (all 5 status values above)POST /V1/tukang/callbacks/site-visit-statusAny site-visit status change - in_progress, visit_complete, estimate_ready, retention_started, install_complete
Provide product catalog accessGET /V1/tukang/catalogTukang.com reads SteelSolution's product catalog nightly to price materials in cost estimates

For the second item, direction is reversed from the first: Tukang.com is the caller, reading from an endpoint SteelSolution hosts.