# `mozaik.havale` — Havale / EFT Banka havalesi ile ödeme — sipariş, ödemeyi onaylayana kadar bekletilir. - version **1.1.0** · publisher `mozaik` · runtime `platform` · listed: true - provider kind: `payment` · methodId `havale` · settlement `transfer` - capabilities: — - scopes: `checkout` - PII: none - admin panels: — · actions: — ## Secrets None. ## Provider-driven inbound Webhooks and jobs are the platform's to ingest and schedule — **never callable by agents**. None. ## Config schema ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "ibans": { "minItems": 1, "maxItems": 5, "type": "array", "items": { "type": "object", "properties": { "banka": { "type": "string", "minLength": 1, "maxLength": 60 }, "iban": { "type": "string" }, "hesapSahibi": { "type": "string", "minLength": 1, "maxLength": 120 } }, "required": [ "banka", "iban", "hesapSahibi" ], "additionalProperties": false } }, "aciklamaOnEki": { "default": "SP", "type": "string", "pattern": "^[A-Z0-9-]{2,10}$" }, "ttlHours": { "default": 72, "type": "integer", "minimum": 24, "maximum": 168 } }, "required": [ "ibans" ], "additionalProperties": false } ``` ## For agents Bank transfer (havale/EFT): orders wait as awaiting_transfer with the IBAN instructions mailed to the buyer; confirm-transfer marks a matched wire as paid. ### Setup 1. **Install** — [`extension.install`](/reference/commands/extension.install) with `{"extensionId": "mozaik.havale"}` and the consent block. 2. **Configure** — [`extension.configure`](/reference/commands/extension.configure) setting `/ibans`. At least one merchant IBAN; shown to buyers in the instructions block. 3. **Configure** — [`extension.configure`](/reference/commands/extension.configure) setting `/ttlHours`. Unpaid orders auto-cancel (stock restocked) after this window. 4. **Enable** — [`extension.enable`](/reference/commands/extension.enable). ### Operations | op | via | effects | proposal-only | requires | |---|---|---|---|---| | `confirm-transfer` | [`order.transfer.confirm`](/reference/commands/order.transfer.confirm) | `write` | ✓ | enabled | [`extensions.ops.get`](/reference/routes/extensions.ops.get) (`GET /v1/extensions/mozaik.havale/ops`) returns this table with live readiness — exactly what blocks each op right now (`missing_secret:`, `missing_config:`, `not_enabled`, …). ### Lifecycle [`extension.install`](/reference/commands/extension.install) → [`extension.configure`](/reference/commands/extension.configure) → [`extension.enable`](/reference/commands/extension.enable) → [`extension.disable`](/reference/commands/extension.disable) → [`extension.uninstall`](/reference/commands/extension.uninstall)