# Provider kinds The manifest's `provider` block is a discriminated union on `kind` (exact fields in the [manifest reference](/reference/manifest)). Each kind has a closed platform-side interface; the interface IS the contract — there are no manifest-declared free-form actions. ## payment (live) `methodId` + `settlement: card | cod | transfer`. The platform owns the payment session state machine (attempts, 3DS continuation, finalize assertions, refunds as intent-first reservations); a `card` provider implements `installments / initiate / finalize / handleWebhook / refund` and only resolves or rejects sessions. `methodFee` (e.g. kapıda) and `pendingOrder` (expiry config key + a typed `orderInstructions()` block rendered in the order view, the confirmation mail and the sözleşme) are generic contracts — the platform never reads a provider's config shape directly. Webhooks: `/v1/ext/{id}/wh/{token}/{storeId}`; browser callbacks: `/_mz/co/cb/{id}/{attemptId}`. ## shipping (live) A checkout rate source via the [`checkout.shipping.rates`](/reference/hooks) hook with a hot-path contract (`rates.timeoutMs`, `cacheTtlSeconds`, `onError`). The first-party `mozaik.flat-shipping` is the auto-installed floor. ## cargo (live) Fulfillment after the order: `createShipment / offers / acceptOffer / label / track / cancel / createReturn / registerWebhook / handleWebhook / senderAddressCreate`. Typed op routes `POST /v1/orders/{ord}/cargo/{offers|book|ship}` and `/cargo/{shp}/{track|cancel|update|label}` are capability-gated by the manifest (`rateShopping`, `tracking`, `labelFormats`, `senderProfile`). Tracking webhooks are a *nudge*: the platform re-fetches with its own credentials before any state transition. ## einvoice (kind defined; first extension at M7) Per-entegratör transmission (Nilvera first). The platform keeps GİB mükellef lookup, e-Fatura-vs-e-Arşiv routing and the invoice-at-fulfillment trigger UX. Needs the order-lifecycle events dispatcher (manifest field `events` is defined now). ## channel (kind defined; M9) Marketplace sync consuming the stock-ledger outbox (`seq > cursor`, absolute-quantity push) and pulling orders as `order.import`. ## messaging (kind defined; M10) SMS/e-mail transports. The İYS consent ledger stays core. ## reporting (kind defined) Report packs with CSV/XLSX exports.