env('BILLING_ENFORCE_BOOKING', true), /* |-------------------------------------------------------------------------- | Hybride Rechnungskreise |-------------------------------------------------------------------------- | | Alle neuen Abschlüsse laufen über Stripe und erhalten fortlaufende | Nummern im STR-Kreis. Laufende Legacy-Zahlungen werden ab Relaunch im | eigenen MAN-Kreis weiter per Rechnung abgerechnet (Fälligkeitsprüfung | via `billing:generate-manual-invoices`). Die Alt-Rechnungen aus den | Ursprungsportalen bleiben unverändert in `legacy_invoices`. | */ 'invoice_number_padding' => 5, // Zahlungsziel für Rechnungen des manuellen Kreises (Tage). Zählt ab // Versand der Rechnung an den Kunden, nicht ab dem 04:30-Lauf. 'manual_due_days' => env('BILLING_MANUAL_DUE_DAYS', 14), // Nachfrist einer Zahlungserinnerung, wenn das Zahlungsziel bereits // verstrichen ist (Tage). 'reminder_due_days' => env('BILLING_REMINDER_DUE_DAYS', 7), /* |-------------------------------------------------------------------------- | Rechnungsaussteller (MAN-Kreis) |-------------------------------------------------------------------------- | | Absender, Bankverbindung und Steuerangaben auf MAN-Rechnungen und in | der Zahlungsaufforderung. Gilt für beide Portale (Entscheidung | 16.09.2026); die Alt-Rechnungen im Archiv behalten ihren jeweiligen | Aussteller. | */ 'issuer' => [ 'name' => env('BILLING_ISSUER_NAME', 'adametz.media'), 'owner' => env('BILLING_ISSUER_OWNER', 'Kevin Adametz'), 'street' => env('BILLING_ISSUER_STREET', 'In der Lake 4'), 'postal_code' => env('BILLING_ISSUER_POSTAL_CODE', '33739'), 'city' => env('BILLING_ISSUER_CITY', 'Bielefeld'), 'phone' => env('BILLING_ISSUER_PHONE', '+49 5206 7076721'), 'email' => env('BILLING_ISSUER_EMAIL', 'info@pressekonto.com'), 'website' => env('BILLING_ISSUER_WEBSITE', 'www.pressekonto.de'), 'bank_name' => env('BILLING_ISSUER_BANK_NAME', 'Sparkasse Bielefeld'), 'iban' => env('BILLING_ISSUER_IBAN', 'DE96 4805 0161 0065 0356 02'), 'bic' => env('BILLING_ISSUER_BIC', 'SPBIDE3BXXX'), 'account_holder' => env('BILLING_ISSUER_ACCOUNT_HOLDER', 'adametz.media, Kevin Adametz'), 'tax_number' => env('BILLING_ISSUER_TAX_NUMBER', '349 / 5001 / 4350'), ], /* |-------------------------------------------------------------------------- | Einzel-Pressemitteilung (Pay-per-Release) |-------------------------------------------------------------------------- | | Netto-Preis laut Decision-Update. Die Stripe-Price-ID wird einmalig | von `billing:sync-stripe-plans` angelegt und hier per ENV verdrahtet — | ohne sie ist der Einzel-PM-Checkout deaktiviert. | */ 'single_pm_price_cents' => 1900, 'single_pm_stripe_price_id' => env('STRIPE_PRICE_SINGLE_PM'), /* |-------------------------------------------------------------------------- | Depublikation (T12, Meldeverfahren Weg 3) |-------------------------------------------------------------------------- | | Netto-Preis der freiwilligen Entfernung einer rechtmäßigen, bereits | veröffentlichten PM aus der öffentlichen Ansicht (Tombstone bleibt). | 35 € netto laut User-Entscheidung 06.07.2026 (O6); Anzeige überall | als Doppelausweis netto/brutto. Auf 0/leer setzen deaktiviert den | Checkout und /melden zeigt die neutrale Preisformulierung. | Ad-hoc-Charge wie Credit-Topups — keine Stripe-Price-ID nötig. | */ 'depublication_price_cents' => env('BILLING_DEPUBLICATION_PRICE_CENTS', 3500), /* |-------------------------------------------------------------------------- | Kostenpflichtige Änderung (Meldeverfahren v2, Spur D) |-------------------------------------------------------------------------- | | Netto-Preis einer inhaltlichen Änderung an einer veröffentlichten PM | oberhalb der Spur-A-Grenze (legal.correction_max_distance_percent). | 10 € netto laut User-Entscheidung 22.07.2026 (E1). Auf 0/leer setzen | deaktiviert den Checkout. Ad-hoc-Charge wie die Depublikation. | */ 'change_price_cents' => env('BILLING_CHANGE_PRICE_CENTS', 1000), /* |-------------------------------------------------------------------------- | USt-Behandlung (Entscheidung 12.06.2026) |-------------------------------------------------------------------------- | | Alle neuen Preise sind NETTO. Die Steuer wird zur Rechnungsstellung | anhand der Rechnungsadresse bestimmt (VatResolver): Deutschland immer | mit Steuer, EU-Ausland nur mit gültiger USt-ID befreit (Reverse | Charge), Drittländer grundsätzlich befreit. | */ 'vat_rate' => env('BILLING_VAT_RATE', 0.19), // Standard-Abrechnungswährung (ISO 4217). Intern/Anzeige in Großschreibung // ('EUR'); für Stripe-API-Aufrufe in Kleinschreibung umwandeln // (strtolower(config('billing.default_currency'))). 'default_currency' => env('BILLING_DEFAULT_CURRENCY', 'EUR'), // Eigene deutsche USt-ID des Betreibers — Pflichtangabe für die // eVatR-Online-Bestätigung ausländischer EU-USt-IDs (BZSt-REST-API). // Ohne sie bleibt die USt-ID-Prüfung eine reine Formatprüfung. 'own_vat_id' => env('BILLING_OWN_VAT_ID'), // EU-Mitgliedstaaten (ISO 3166-1 alpha-2), Stand 2026 — ohne DE, // das im VatResolver als Inland behandelt wird. 'eu_country_codes' => [ 'AT', 'BE', 'BG', 'CY', 'CZ', 'DK', 'EE', 'ES', 'FI', 'FR', 'GR', 'HR', 'HU', 'IE', 'IT', 'LT', 'LU', 'LV', 'MT', 'NL', 'PL', 'PT', 'RO', 'SE', 'SI', 'SK', ], ];