marketplace

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

Send the delivery back, and say what is wrong.

Барлық marketplace соңғы нүктелері

Аутентификация

API кілтін bearer токені ретінде жіберіңіз. Бұл соңғы нүкте сипаттамада арнайы рұқсатты көрсетпейді, сондықтан болжағаннан гөрі кілтіңізге қажетті ең аз рұқсатты беріп, жауапты тексеріңіз.

Бұл соңғы нүкте ұйым идентификаторын қабылдамайды. Сіздің кілтіңіз оның қай ұйымға тиесілі екенін өзі анықтайды және жауап соған шектеледі.

Әрекет етіп көру

Бұрыштық жақшалардағы кез келген нәрсені өз мәндеріңізбен, ал кілт орналастырушысын басқару тақтасынан алынған кілтпен алмастырыңыз.

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

Жүйеге кіргенсіз бе? Бақылау тақтасындағы API консолі ұйымыңыздың нақты идентификаторы мен жеке кілтіңізді автоматты түрде толтырады да, нақты жауапты көре алуыңыз үшін сұрауды тікелей жұмыс істеп тұрған API арқылы орындайды. Бұл соңғы нүктені API консолінде ашыңыз

Мәліметтер

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.

Параметрлер

АтыTүріМіндеттіМазмұны
sale_id (path)stringИә

Сұрау денесі

АтыTүріМіндеттіМазмұны
reasonstringИәWhat needs changing. Required, and shown to the seller — a rejection they cannot read names nothing, so it produces a second rejection.

Жауап

АтыTүріМіндеттіМазмұны
idUuidИәUUIDv7 identifier — sortable by creation time (docs/02 §8).
stateMarketplaceSaleStateИәWhere 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_idUuidИәUUIDv7 identifier — sortable by creation time (docs/02 §8).
listing_titlestringИә
package_namestringИә
package_descriptionstringЖоқ
vendor_display_namestringЖоқThe seller's public name, never the legal name held for identity checks.
delivery_daysintegerЖоқ
revisions_includedintegerЖоқ
revision_countintegerЖоқ
billing_modeMarketplaceBillingModeЖоқHow 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_intervalobjectЖоқ
period_indexintegerЖоқ0 for a one-time sale and a subscription's first period; one per renewal.
amount_minorintegerИә
currencyCurrencyCodeИәISO 4217 currency code (money is minor units + this code — CLAUDE.md §2.8).
auto_acceptsbooleanЖоқRead 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_daysobjectЖоқ
accept_byobjectЖоқWhen this purchase auto-accepts if the buyer does nothing.
delivered_atobjectЖоқ
accepted_atobjectЖоқ
accepted_automaticallybooleanЖоқWhether 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_reasonstringЖоқ
last_revision_atobjectЖоқ
order_idUuidЖоқUUIDv7 identifier — sortable by creation time (docs/02 §8).
created_atstringЖоқ

Бұл соңғы нүкте қайтара алатын қателер

401 · 404 · 422