marketplace
POST /v1/marketplace/listings/{listing_id}/revenue-verification
Verify a site or store's revenue from the seller's Stripe payouts and subscriptions.
Authentication
Send an API key as a bearer token. This endpoint checks no specific permission, so any key for your organisation can call it.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X POST https://api.zinndigital.com/v1/marketplace/listings/{listing_id}/revenue-verification \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "stripe_restricted_key": <string> }'Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
s1006 (slice 3, owner D41) and s1014 L69 (Q6), docs/83 §1e. The seller of a website or store listing sends a Stripe RESTRICTED live key (rk_live_…) with Payouts set to Read (and Subscriptions set to Read for monthly recurring revenue). The engine reads the account's paid payouts of the last 12 months and its active subscriptions (normalised to a month), keeps the figures in the account's own currency and stores two measured values stamped by: stripe in whole US dollars, converted at the marketplace's exchange rate (stripe_payouts_12m, stripe_payouts_monthly_avg), shown to buyers as verified with their date. ⛔ By default the key is used in this request only and is never stored, logged or echoed. ONLY with keep_verified: true (the seller's explicit opt-in) is it kept in Vault and re-read weekly; it is deleted on disconnect, when the listing is sold or closed, after two failed refreshes, or when the seller re-verifies without the opt-in. A secret key (sk_), a test key or a publishable key is refused before any call to Stripe.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
listing_id (path) | string | Yes | — |
Request body
| Name | Type | Required | What it is |
|---|---|---|---|
stripe_restricted_key | string | Yes | — |
keep_verified | boolean | No | Keep the key in Vault and re-read Stripe weekly. Off unless the seller ticks it. |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
payouts_12m | integer | Yes | Whole units of currency (US dollars). |
monthly_average | integer | Yes | — |
currency | string | Yes | Always USD |
payouts | integer | Yes | How many payouts were counted. |
account_currency | string | No | — |
account_payouts_12m_minor | integer | No | Minor units of account_currency. |
mrr_minor | object | No | Minor units of account_currency; null when unknown. |
active_subscriptions | object | No | — |
mrr_note | string | No | Why MRR is unknown (needsSubscriptionsRead, tooManySubscriptions), or empty. |
kept | boolean | Yes | — |
verified_at | string | Yes | — |
Errors this endpoint can return
401 · 404 · 422