marketplace

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

Send the delivery back, and say what is wrong.

Tutti gli endpoint marketplace

Autenticazione

Invia una chiave API come bearer token. Questo endpoint non specifica un permesso specifico nella specifica, quindi assegna alla tua chiave i permessi minimi necessari e verifica la risposta invece di fare supposizioni.

Questo endpoint non richiede alcun ID organizzazione. La tua chiave identifica già l'organizzazione a cui appartiene e la risposta è limitata ad essa.

Provalo

Sostituisci qualsiasi elemento tra parentesi angolari con i tuoi valori e il segnaposto key con una chiave dalla tua dashboard.

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

Hai effettuato l'accesso? La console API nella tua dashboard inserisce il tuo ID organizzazione reale e la tua chiave personale, ed esegue la richiesta sull'API live in modo da poter vedere la risposta effettiva. Apri questo endpoint nella console API

Dettagli

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

NomeTipoObbligatorioChe cos'è
sale_id (path)string

Corpo della richiesta

NomeTipoObbligatorioChe cos'è
reasonstringWhat needs changing. Required, and shown to the seller — a rejection they cannot read names nothing, so it produces a second rejection.

Risposta

NomeTipoObbligatorioChe cos'è
idUuidUUIDv7 identifier — sortable by creation time (docs/02 §8).
stateMarketplaceSaleStateWhere 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_idUuidUUIDv7 identifier — sortable by creation time (docs/02 §8).
listing_titlestring
package_namestring
package_descriptionstringNo
vendor_display_namestringNoThe seller's public name, never the legal name held for identity checks.
delivery_daysintegerNo
revisions_includedintegerNo
revision_countintegerNo
billing_modeMarketplaceBillingModeNoHow 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_intervalobjectNo
period_indexintegerNo0 for a one-time sale and a subscription's first period; one per renewal.
amount_minorinteger
currencyCurrencyCodeISO 4217 currency code (money is minor units + this code — CLAUDE.md §2.8).
auto_acceptsbooleanNoRead 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_daysobjectNo
accept_byobjectNoWhen this purchase auto-accepts if the buyer does nothing.
delivered_atobjectNo
accepted_atobjectNo
accepted_automaticallybooleanNoWhether 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_reasonstringNo
last_revision_atobjectNo
order_idUuidNoUUIDv7 identifier — sortable by creation time (docs/02 §8).
created_atstringNo

Errori che questo endpoint può restituire

401 · 404 · 422