marketplace

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

Send the delivery back, and say what is wrong.

Semua titik akhir marketplace

Autentikasi

Kirimkan kunci API sebagai token bearer. Titik akhir ini tidak menyatakan izin tertentu dalam spesifikasi, jadi berikan kunci Anda izin minimum yang diperlukan dan periksa responsnya alih-alih berasumsi.

Endpoint ini tidak memerlukan id organisasi. Kunci Anda telah mengidentifikasi organisasi tempatnya berafiliasi, dan respons akan dibatasi untuk organisasi tersebut.

Coba

Ganti apa pun di dalam tanda kurung sudut dengan nilai Anda sendiri, dan placeholder kunci dengan kunci dari dasbor Anda.

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> }'

Sudah masuk? Konsol API di dasbor Anda akan mengisi ID organisasi asli dan kunci Anda sendiri, serta menjalankan permintaan terhadap API langsung sehingga Anda dapat melihat respons aktualnya. Buka titik akhir ini di konsol API

Detail

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.

Parameter

NamaJenisWajibTentang apa ini
sale_id (path)stringYa

Isi permintaan

NamaJenisWajibTentang apa ini
reasonstringYaWhat needs changing. Required, and shown to the seller — a rejection they cannot read names nothing, so it produces a second rejection.

Tanggapan

NamaJenisWajibTentang apa ini
idUuidYaUUIDv7 identifier — sortable by creation time (docs/02 §8).
stateMarketplaceSaleStateYaWhere 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_idUuidYaUUIDv7 identifier — sortable by creation time (docs/02 §8).
listing_titlestringYa
package_namestringYa
package_descriptionstringTidak
vendor_display_namestringTidakThe seller's public name, never the legal name held for identity checks.
delivery_daysintegerTidak
revisions_includedintegerTidak
revision_countintegerTidak
billing_modeMarketplaceBillingModeTidakHow 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_intervalobjectTidak
period_indexintegerTidak0 for a one-time sale and a subscription's first period; one per renewal.
amount_minorintegerYa
currencyCurrencyCodeYaISO 4217 currency code (money is minor units + this code — CLAUDE.md §2.8).
auto_acceptsbooleanTidakRead 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_daysobjectTidak
accept_byobjectTidakWhen this purchase auto-accepts if the buyer does nothing.
delivered_atobjectTidak
accepted_atobjectTidak
accepted_automaticallybooleanTidakWhether 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_reasonstringTidak
last_revision_atobjectTidak
order_idUuidTidakUUIDv7 identifier — sortable by creation time (docs/02 §8).
created_atstringTidak

Kesalahan yang dapat dikembalikan oleh titik akhir ini

401 · 404 · 422