# Provider Reference

Operational detail for registered providers. Registry index: [provider-registry.md](../provider-registry.md).

## Payamak

- **Purpose:** SMS OTP for Core and Identity (Identity calls Core OTP client).
- **Config:** `PAYAMAK_*`, `OTP_EXPIRE_SECONDS`, pattern/body id for OTP template.
- **Failure modes:** provider downtime, invalid credentials, rate limits — OTP endpoints must fail safely without leaking existence details beyond product policy.
- **Tests:** `test_otp_auth` and related flows.

## Keycloak

- **Purpose:** Central IdP.
- **Realm:** `superapp`
- **Theme:** `torbatyar` (`infrastructure/keycloak/themes/torbatyar`)
- **Clients:** `superapp-frontend`, `core-service`, `identity-access-service`
- **Public URL:** `KEYCLOAK_PUBLIC_URL` (prod: `https://auth.torbatyar.ir`)

## Let's Encrypt / Certbot

- **Purpose:** TLS for platform and tenant hosts.
- **Automation:** `infrastructure/nginx/provision_ssl.py` via Celery SSH.
- **See:** [ssl.md](../deployment/ssl.md)

## Planned Providers

See registry entries for S3, Payment Gateway, AI models. Fill this file when a provider becomes Active.

## Planned — Payment (Torbat Pay)

- **Purpose:** Tenant commerce payment capture via BYO-PSP or Torbat Pay Merchant facilitator.
- **Architecture:** [ADR-020](../architecture/adr/ADR-020.md), [ADR-021](../architecture/adr/ADR-021.md), [payment-contracts.md](../reference/payment-contracts.md).
- **Iranian PSPs (initial):** ZarinPal, IDPay, NextPay, Pay.ir, Mellat, Parsian, Saman — via Payment adapter registry only.
- **Config:** `PAYMENT_*`, credential vault refs (no plaintext in DB).
- **Failure modes:** PSP timeout, invalid signature, idempotency conflict — fail safe; callback replay protection.
- **Tests:** architecture, tenant isolation, bundle isolation, contract validation (from 14.0+).

## Related Documents

- [Integration Architecture](../architecture/integration-architecture.md)
- [Provider Template](../templates/provider-template.md)
