List seller
Answers where the caller's org stands as a seller, in one read: its founders' identity verification (KYC) and legal entity (KYB), its tax form and whether it is certified and valid, its own sanctions screening — only what an org may see about itself — the payout wallet it proved, the TaxPrincipalCredentials signed for its agents, what it earned in the year from the economic events the rails stated, and the 1099s payers furnished it.
GET /v1/marketplace/seller
| Address | https://api.hanzo.ai/v1/marketplace/seller |
| Method | GET |
| Operation | get_marketplace_seller |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Answers where the caller's org stands as a seller, in one read: its founders' identity verification (KYC) and legal entity (KYB), its tax form and whether it is certified and valid, its own sanctions screening — only what an org may see about itself — the payout wallet it proved, the TaxPrincipalCredentials signed for its agents, what it earned in the year from the economic events the rails stated, and the 1099s payers furnished it. Ready says nothing is missing. Each owning app is asked as the org; one this deployment does not run is named absent rather than read as empty. An org admin reads it.
Request
1 field.
| Field | In | Type | Required | Description |
|---|---|---|---|---|
year | query | integer | — | Year is the calendar year (UTC); the current one when zero. |
Response
| Status | Body | Meaning |
|---|---|---|
200 | marketplace.Onboarding | ok |
default | problem-details | refused |
200 body — 47 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
credentials | body | marketplace.Statement[] | — | Credentials are the TaxPrincipalCredentials signed for the org's agents, newest first. |
credentials[].agent | body | string | — | Agent is the agent it is about. |
credentials[].expires | body | integer (int64) | — | Expires is when it stops standing, unix seconds; zero for a W-9, which stands until the form changes. |
credentials[].form | body | string | — | Form is the class of tax form it rests on: w9, w8ben or w8bene. |
credentials[].id | body | string | — | ID is the statement's jti. |
credentials[].issued | body | integer (int64) | — | Issued is when it was signed, unix seconds. |
credentials[].jws | body | string | — | JWS is the signed statement itself — the credential an agent presents — answered only to the org it is about. |
credentials[].kind | body | string | — | Kind is what it states: tax. |
credentials[].org | body | string | — | Org is the principal the agent answers to. |
credentials[].revoked | body | integer (int64) | — | Revoked is when it was withdrawn, unix seconds; zero while it stands. |
credentials[].status | body | string | — | Status is live, expired or revoked. |
earnings | body | marketplace.Earnings | — | |
earnings.byRail | body | object | — | ByRail sums them by the rail that moved them. |
earnings.byRail.* | body | any | — | |
earnings.currency | body | string | — | Currency is USD. |
earnings.gross | body | any | — | Gross is the sum of every payment to the org, exact USD. |
earnings.partial | body | boolean | — | Partial is true when the year held more than one read sums. |
earnings.payments | body | integer (int64) | — | Payments is how many. |
earnings.year | body | integer (int64) | — | Year is the calendar year (UTC). |
entity | body | string | — | Entity is the legal entity's formation stage (KYB) — "company" once formed — or empty when the org began none. |
identity | body | string | — | Identity is the founders' identity verification (KYC): verified, pending, failed or none. |
missing | body | string[] | — | Missing names what the org still owes before it is paid without a hitch: identity, sanctions, tax_form, tax_invalid or payout. |
org | body | string | — | Org is the seller org. |
payout | body | marketplace.Payout | — | |
payout.address | body | string | — | Address is its address, recovered from the signature that proved it. |
payout.bound | body | boolean | — | Bound is true once a signature proved it. |
payout.boundAt | body | integer (int64) | — | BoundAt is when, unix seconds. |
payout.wallet | body | string | — | Wallet is the wallet id, in the seller's org. |
ready | body | boolean | — | Ready is true when nothing is missing. |
received | body | marketplace.Received[] | — | Received are the 1099s payers furnished the org for Year. |
received[].corrected | body | boolean | — | Corrected is true for a statement that corrects an earlier one. |
received[].furnished | body | integer (int64) | — | Furnished is when it was delivered, unix seconds. |
received[].id | body | string | — | ID is the form id the payer issued it under. |
received[].kind | body | string | — | Kind is 1099-NEC or 1099-MISC. |
received[].payer | body | string | — | Payer is the org that furnished it. |
received[].superseded | body | boolean | — | Superseded is true for one a later correction replaced. |
received[].year | body | integer (int64) | — | Year is the calendar year of the payments. |
sanctions | body | string | — | Sanctions is the org's own screening: clear, review, blocked, unscreened or unavailable, and why in words. |
sanctionsReason | body | string | — | SanctionsReason says why Sanctions is what it is. |
sources | body | marketplace.Source[] | — | Sources names each owning app asked, and whether it answered: ok, absent (not run by this deployment) or failed. |
sources[].app | body | string | — | App is the app. |
sources[].status | body | string | — | Status is ok, absent or failed. |
tax | body | marketplace.TaxStatus | — | |
tax.certified | body | boolean | — | Certified is whether its signature covers the form as it stands. |
tax.expires | body | integer (int64) | — | Expires is when a W-8 lapses, unix seconds; a W-9 does not. |
tax.form | body | string | — | Form is w9, w8ben or w8bene. |
tax.valid | body | boolean | — | Valid is whether it is complete and unexpired. |
Failure carries the platform error shape — see Errors.
Examples
hanzo has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.
import { Configuration, MarketplaceApi } from 'hanzoai';
const api = new MarketplaceApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getMarketplaceSeller();from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import MarketplaceApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = MarketplaceApi(client).get_marketplace_seller()cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)
resp, _, err := client.MarketplaceAPI.GetMarketplaceSeller(context.Background()).Execute()
if err != nil {
return err
}use hanzo_client::apis::{configuration::Configuration, marketplace_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = marketplace_api::get_marketplace_seller(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.MarketplaceApi;
ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));
var result = new MarketplaceApi(client).getMarketplaceSeller();The method above is the one at the current release of the document. [email protected] (npm) and [email protected] (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. SDKs →
curl https://api.hanzo.ai/v1/marketplace/seller \
-H "Authorization: Bearer $HANZO_API_KEY"MCP reaches marketplace through the marketplace tool, which names its 6 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:
curl -X POST https://api.hanzo.ai/v1/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe",
"arguments": {
"op": "get_marketplace"
}
}
}'How is this guide?