JOBFLOW
An A2A client finds this agent by fetching the well-known path on the provider's own host. That is what makes an agent card different from every other agent artifact in this catalog: it is provider-published by construction — it cannot be derived, generated, or reconstructed on a provider's behalf.
https://agents.kulalabs.ch/api/a2a
· transport JSONRPC
· protocol
https://agents.kulalabs.ch/v1
· transport HTTP+JSON
· protocol
Check whether the flow exists intent.match
The first call: says whether the user's request is a flow JOBFLOW already runs. A match answers do_not_build true, the capabilities it touches and the next call; no match answers 404 OUT_OF_SCOPE. Never: Guess: it names the words it matched. Free.
jobflowapsreadtradesfield-serviceDiscover JOBFLOW discover
Catalog, schemas, fees, gate, error codes; with a trade, the field knowledge for it. Never: —. Free.
jobflowapsreadtradesfield-serviceQuote a platform fee quote
The hard platform fee for a capability before it is called, with what is left of the daily cap. Never: Estimate the value of a job. Free.
jobflowapsreadtradesfield-serviceCompare with building it compare
Build-vs-buy next to the hard fee, the estimate marked NOT_A_QUOTE. Never: Present a token count or an estimate as a fact. Free.
jobflowapsreadtradesfield-serviceCreate a mandate mandate.create
Creates a mandate and the out-of-band approval link for the owner. Never: Activate production. Free.
jobflowapsproposetradesfield-servicePropose the flow flow.configure
The WhatsApp-to-payment flow for this mandate as a configuration proposal. Never: Bind a channel or an account without an approved mandate. Free.
jobflowapsproposetradesfield-serviceClassify a request intake.classify
Classifies a customer request and opens the flow (REQUEST → CLASSIFIED). Never: Set an emergency tariff. Platform fee CHF 0.05 per accepted call: quote first, then send quote_id, mandate_token and idempotency_key.
jobflowapsmutatetradesfield-serviceCreate the order job.create
Creates the order from the classification. Needs state CLASSIFIED. Never: Take a price from the request body. Platform fee CHF 0.05 per accepted call: quote first, then send quote_id, mandate_token and idempotency_key.
jobflowapsmutatetradesfield-serviceAssign a technician assign
Assigns a technician by the business's rule. Needs state ORDER. Never: Treat free text as dispatching. Platform fee CHF 0.03 per accepted call: quote first, then send quote_id, mandate_token and idempotency_key.
jobflowapsmutatetradesfield-serviceBook the appointment schedule
Books the earliest free slot in the business's working windows. Needs state ASSIGNED. Never: Use the agent's calendar as the source. Platform fee CHF 0.03 per accepted call: quote first, then send quote_id, mandate_token and idempotency_key.
jobflowapsmutatetradesfield-serviceSeal the proof pack proof.seal
Hashes and closes the proof pack after the work is completed. Needs state WORK_COMPLETED. Never: Issue the invoice. Platform fee CHF 0.05 per accepted call: quote first, then send quote_id, mandate_token and idempotency_key.
jobflowapsmutatetradesfield-serviceIssue the invoice invoice.issue
Issues the invoice from the business's tariff and the reported work, only after the proof pack. Needs state PROOF_PACK. Never: Invent a price or skip the gate. Platform fee CHF 0.18 per accepted call: quote first, then send quote_id, mandate_token and idempotency_key.
jobflowapsmoneytradesfield-serviceRequest payment payment.collect
Creates the payment request for the invoice (QR bill, TWINT, card). The flow reaches PAYMENT only on the signed event of the payment provider. Needs state INVOICE. Never: Mark anything paid or pay out without a settled status. Platform fee CHF 0.10 per accepted call: quote first, then send quote_id, mandate_token and idempotency_key.
jobflowapsmoneytradesfield-serviceVerify a chain verify
Checks a chain: links, payload hashes and signatures. Never: Require a UI. Free.
jobflowapsreadtradesfield-service2026-10-30 from https://agents.kulalabs.ch/.well-known/agent-card.json,
HTTP 200. The body was saved verbatim and is the sole source for
everything on this page — no field is inferred.
View the captured card.
Providers change what they serve; if this card has moved or changed shape,
the provider profile carries the
current state as of the last build.
Work with this as data
Every agent card here is available over the APIs.io API and to AI agents over MCP. A2A Agent Cards is not yet its own endpoint on the v1 API. Reach it through catalog search and the tag graph, or the MCP server.