[ 'key' => env('POSTMARK_API_KEY'), ], 'resend' => [ 'key' => env('RESEND_API_KEY'), ], 'ses' => [ 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), ], 'slack' => [ 'notifications' => [ 'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'), 'channel' => env('SLACK_BOT_USER_DEFAULT_CHANNEL'), ], ], // Cloudflare Turnstile, used to gate the public certificate verification // form. Left unconfigured, the CAPTCHA check is skipped (see // App\Rules\Turnstile) so local development and CI need no keys — set // both before exposing /verify in production. 'turnstile' => [ 'site_key' => env('TURNSTILE_SITE_KEY'), 'secret_key' => env('TURNSTILE_SECRET_KEY'), ], // Moneybird powers subscription billing (contacts, sales invoices, // recurring invoice templates, and the webhook that reports payment). // Run `php artisan moneybird:setup` after setting MONEYBIRD_API_TOKEN to // discover administration_id/tax_rate_id/ledger_account_id and to // register the webhook (which prints the webhook_token to store here). 'moneybird' => [ 'api_token' => env('MONEYBIRD_API_TOKEN'), 'administration_id' => env('MONEYBIRD_ADMINISTRATION_ID'), 'webhook_token' => env('MONEYBIRD_WEBHOOK_TOKEN'), 'tax_rate_id' => env('MONEYBIRD_TAX_RATE_ID'), 'ledger_account_id' => env('MONEYBIRD_LEDGER_ACCOUNT_ID'), 'base_url' => env('MONEYBIRD_BASE_URL', 'https://moneybird.com/api/v2'), 'grace_days' => (int) env('MONEYBIRD_GRACE_DAYS', 14), ], ];