marketplace

POST /v1/marketplace/purchases/{sale_id}/revision

Send the delivery back, and say what is wrong.

Toate punctele finale marketplace

Autentificare

Trimiteți o cheie API ca token de tip bearer. Acest punct final nu specifică o permisiune anume în specificație, așa că acordați cheii cele mai puține drepturi necesare și verificați răspunsul în loc să faceți presupuneri.

Acest endpoint nu necesită un ID de organizație. Cheia ta identifică deja organizația căreia îi aparține, iar răspunsul este limitat la aceasta.

Încearcă

Înlocuiți tot ce se află între paranteze unghiulare cu propriile valori și substituentul cheie cu o cheie din tabloul de bord.

curl -X POST https://api.zinndigital.com/v1/marketplace/purchases/{sale_id}/revision \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "reason": <string> }'

Autentificat? Consola API din panoul de control îți completează ID-ul real al organizației și propria cheie și rulează cererea în API-ul live, astfel încât să poți vedea răspunsul efectiv. Deschideți acest punct final în consola API

Detalii

docs/82 §3. Not accepting is a **first-class path**, not an error state, and it **pauses the acceptance clock** — so a seller cannot run the timer out by stalling, and a buyer who did engage is never auto-accepted for a delivery they rejected. The reason is required and becomes part of the order record, visible to the seller: a rejection they cannot read is an instruction to change something unnamed, which produces a second rejection. Bounded by the package's `revisions_included`, which is a term the buyer paid for rather than an unlimited entitlement — exceeding it points at a dispute, which has staff in it. A package promising **zero** revisions still allows the first request, because the alternative to it is a chargeback.

Parametri

NumeTipObligatoriuCe este
sale_id (path)stringDa

Corp cerere

NumeTipObligatoriuCe este
reasonstringDaWhat needs changing. Required, and shown to the seller — a rejection they cannot read names nothing, so it produces a second rejection.

Răspuns

NumeTipObligatoriuCe este
idUuidDaUUIDv7 identifier — sortable by creation time (docs/02 §8).
stateMarketplaceSaleStateDaWhere one purchased package is in its life (docs/82 §3). The terminal state is `accepted`, not `delivered`: delivery is the vendor's claim, acceptance is the buyer's act, and it…
listing_idUuidDaUUIDv7 identifier — sortable by creation time (docs/02 §8).
listing_titlestringDa
package_namestringDa
package_descriptionstringNu
vendor_display_namestringNuThe seller's public name, never the legal name held for identity checks.
delivery_daysintegerNu
revisions_includedintegerNu
revision_countintegerNu
billing_modeMarketplaceBillingModeNuHow an offer is charged (docs/82 §2a). A property of the OFFER, chosen by the seller from what the listing type permits — a $200 one-off audit and $150/month of link building si…
billing_intervalobjectNu
period_indexintegerNu0 for a one-time sale and a subscription's first period; one per renewal.
amount_minorintegerDa
currencyCurrencyCodeDaISO 4217 currency code (money is minor units + this code — CLAUDE.md §2.8).
auto_acceptsbooleanNuRead this BEFORE `accept_by`. A null `accept_by` means two completely different things — not delivered yet, or this type never auto-accepts at all (an asset sale releasing on a…
auto_accept_daysobjectNu
accept_byobjectNuWhen this purchase auto-accepts if the buyer does nothing.
delivered_atobjectNu
accepted_atobjectNu
accepted_automaticallybooleanNuWhether the timer accepted this rather than the buyer. It does NOT change the outcome — auto-accept has the same finality as the button, which is why the buyer must be warned be…
last_revision_reasonstringNu
last_revision_atobjectNu
order_idUuidNuUUIDv7 identifier — sortable by creation time (docs/02 §8).
created_atstringNu

Erori pe care le poate returna acest punct final

401 · 404 · 422