ڈویلپر رہنمائی: درست تکنیکی مثالیں انگریزی میں دی گئی ہیں۔ قیمت، اہلیت اور فراہمی کی تصدیق ضروری ہے۔
SAFI / DEVELOPER HUB / v1.1Five practical purchasing flows.
Use catalog facts and visible blockers to decide what to do next. These are local integration scenarios, not customer transactions.
Two WordPress sites: compare, explain and quote
{
"command": "recommend",
"requirements": {
"sites": 2,
"storage_gb": 20
}
}Both plans fit the declared two-site/20 GB requirement. Shared hosting leaves applications/content with the customer; managed WordPress offers assistance within an agreed scope. Runtime, traffic, backups, response times and other unknown limits still need confirmation.
| Plan | Sites / storage | Annual initial | Annual renewal | Authority |
|---|---|---|---|---|
| SAFI Grow | 2 sites / 50 GB | 1266600 | 1666600 | Safi.pk product facts ↗ |
| SAFI SiteBoost | 2 sites / 50 GB | 10800000 | unknown | Safi.pk product facts ↗ |
{
"command": "quote",
"quote": {
"currency": "PKR",
"lines": [
{
"product_id": "hosting-298",
"offer_id": "annual",
"quantity": 1
}
]
}
}Calculated response subset, checked against the real API
{
"state": "pending_review",
"currency": "PKR",
"price_kind": "calculated_quote",
"initial_total_minor": 1266600,
"setup_minor": null,
"tax_treatment": "unknown",
"provider_verified_checkout_minor": null,
"lines": [
{
"renewal_minor": 1666600,
"renewal_months": 12
}
]
}The lines[] subset above shows renewal fields from the actual first quote line. The quote is prepared and review is recorded. Setup, tax and provider-verified checkout amount remain unknown. Managed renewal is also unknown. Exact response fields are documented in OpenAPI; this projection does not create or accept an order.
24 paid + 12 bonus = 36 service months
{
"command": "quote",
"quote": {
"currency": "PKR",
"lines": [
{
"product_id": "hosting-298",
"offer_id": "two-plus-one",
"quantity": 1
}
]
}
}{
"state": "pending_review",
"currency": "PKR",
"price_kind": "calculated_quote",
"initial_total_minor": null,
"provider_verified_checkout_minor": null,
"lines": [
{
"paid_months": 24,
"bonus_months": 12,
"service_months": 36,
"renewal_minor": null,
"renewal_months": null
}
]
}Only the relevant fields of the first lines[] item are shown above. Payable and renewal amounts stay null. All checkout is disabled for this limited launch. The underlying task can be TASK_STATE_COMPLETED because it prepared this response; payment and activation have not occurred.
Readiness is a separate check
{
"checkout_ready": false,
"blockers": [
"SAFI checkout must match the published 24-paid/36-service reference total",
"Dedicated 36-month service entitlement and no invoice at month 24",
"Next due date at month 36 and matching SAFI renewal configuration",
"Promotion eligibility and trial non-stacking enforcement",
"Multi-year amounts remain unconfirmed until the shared catalog owner finishes the contract"
],
"trial_stacking": false,
"paid_order_created": false,
"service_provisioned": false
}Send handoff with your current quote ID/revision and acknowledge_live_check:true. Expect checkout_disabled for this hosting offer. Trial and multi-year cannot stack:
{
"command": "quote",
"quote": {
"currency": "PKR",
"lines": [
{
"product_id": "hosting-298",
"offer_id": "trial",
"quantity": 1
},
{
"product_id": "hosting-298",
"offer_id": "two-plus-one",
"quantity": 1
}
]
}
}The server rejects that request with A2A malformed-parameter code -32602 (REST promotion_conflict/400). It does not silently add three trial months or infer annual × 2.
Reference source version e815478040ce374ddddbc1c2. This page derives amounts from the same catalog as the API; follow-up HTTP tests compare the illustrated response subsets and schemas with real quote results.
Find hosting for two WordPress sites
{
"command": "recommend",
"requirements": {
"sites": 2,
"storage_gb": 20
}
}Compare both families. Resource fit is not proof of runtime, traffic or operational suitability; confirm unknown limits and WordPress responsibilities.
Request the 24-paid / 36-service offer
{
"command": "quote",
"quote": {
"currency": "PKR",
"lines": [
{
"product_id": "hosting-298",
"offer_id": "two-plus-one",
"quantity": 1
}
]
}
}Expect 24 paid months, 12 bonus months, 36 service months, null payable amount and pending_review. Never calculate annual × 2 or stack a trial.
Handle an unknown price through review
{
"command": "quote_status",
"quote_id": "REPLACE_WITH_OWN_QUOTE_ID"
}Read quote.lines[].blockers and reviews[].status. An open review is not approval. No notification is sent. Prepare a new quote after an authoritative catalog update.
Request a domain quote for manual review
{
"command": "quote",
"quote": {
"currency": "PKR",
"lines": [
{
"product_id": "domain-com",
"offer_id": "registration",
"quantity": 1,
"domain": "Example-Agent-Demo.com"
}
]
}
}Availability stays unverified. The quote is queued for manual review. A handoff request returns checkout_disabled; no cart URL or order is created.