# Partner Capability Index

> Find the production endpoint, webhook, sandbox scenario, and integration guidance for common partner workflows.

Use this index when you know the workflow you need and want the authoritative contract immediately.
All endpoint paths are relative to `/api/v1/partner` in production and `/api/sandbox/v1/partner` in sandbox.

| Capability | Production contract | Test and implementation guidance |
| --- | --- | --- |
| Batch portfolio quotes | `GET /market/quotes?symbols=SCOM.KE,MTN.ZA` — up to 50 symbols | [Quotes and freshness](/partners/docs/market-data-quotes) |
| Tradeable price quote | `GET /quote/{symbol}` — single-use, 60-second TTL | [Quote refresh pattern](/partners/docs/trading#mobile-quote-refresh) |
| Replace a resting order | `PATCH /orders/{orderId}` or `PATCH /users/{userId}/orders/{orderId}` | [Advanced order types](/partners/docs/advanced-order-types) |
| Market open/closed state | `GET /market/status` | [Market state](/partners/docs/market-data-quotes#market-state) |
| Holidays and closures | `GET /market/holidays` | [Market calendar](/partners/docs/etfs-and-charts) |
| KYC status changes | `kyc.updated` webhook; inspect `kycStatus` | [KYC webhook handling](/partners/docs/webhooks#event-payloads) |
| Instrument eligibility | `GET /assets`; inspect `fractionalEligibility` and `orderRules` | [Fractional trading](/partners/docs/fractional-trading) |
| Raw equity history | `GET /portfolio/history` and sub-account equivalent | [Trading API](/partners/docs/trading-api) |
| Cash-flow-adjusted performance | `GET /portfolio/performance` and sub-account equivalent | Optional `benchmark=SCOM.KE`; daily TWR, P&L, and excess return |
| Partial fill and failure simulation | `POST /test-tools/trade`, then `PATCH /test-tools/orders/{orderId}` | [Paper and demo trading](/partners/docs/paper-demo-trading#deterministic-execution-certification) |
| Idempotent mutation retry | Reuse the same `Idempotency-Key` and identical request | [Authentication and idempotency](/partners/docs/auth) |

<Callout type="warning">
  A market-data quote and a tradeable quote are different. Batch `/market/quotes` responses are for
  display and portfolio refresh. MARKET orders require the single-use `quoteId` from `/quote/{symbol}`.
</Callout>

For machine consumers, use the [OpenAPI JSON](https://mystocks.africa/openapi.json),
[OpenAPI YAML](https://mystocks.africa/openapi.yaml), or the
[documentation catalog](https://mystocks.africa/partners/docs/catalog.json).
