import { registerAs } from "@nestjs/config"; /** * EbirrPay — direct mobile-wallet debit (docs/ebirr/INTEGRATION.md). * * Auth is plain credentials in the request body (§4): there is no signing key, and — because the * flow has no hosted page and no callback — no notify URL and no return URL either. */ export default registerAs("ebirr", () => ({ baseUrl: process.env.EBIRR_BASE_URL ?? "", merchantUid: process.env.EBIRR_MERCHANT_UID ?? "", apiKey: process.env.EBIRR_API_KEY ?? "", apiUserId: process.env.EBIRR_API_USER_ID ?? "", paymentMethod: process.env.EBIRR_PAYMENT_METHOD ?? "MWALLET_ACCOUNT", channelName: process.env.EBIRR_CHANNEL_NAME ?? "WEB", /** * How long API_PURCHASE waits for the payer to read the USSD prompt and type their PIN. It is * awaited on the request path, so it must stay under every timeout in front of it — the * passenger API's PAYMENT_API_HTTP_TIMEOUT_MS (60s) and nginx's 60s default proxy_read_timeout. * Raising it past those turns a slow payer into a dropped connection instead of a fallback. */ purchaseTimeoutMs: Number(process.env.EBIRR_PURCHASE_TIMEOUT_MS ?? 45_000), /** How long the intent stays payable before the reconciliation sweep expires it. */ pushTtlMs: Number(process.env.EBIRR_PUSH_TTL_MS ?? 180_000), insecureTls: process.env.EBIRR_INSECURE_TLS === "true", }));