---
# System prepended metadata

title: Untitled

---

Theme: http://themepixels.me/bracketplus/1.4/app/template-dark/chart-echarts.html

**Allgemeine Infos**:
- Es ist wichtig Access/Audit Logs für Logins und Veränderungen im Panel (v.a. wichtige Einstellungen) zu haben
    - Logins, PW/Email/2FA/allg. Profileinstellungen Change
    - Projekt angelegt/bearbeitet
    - Auszahlungen: Einstellungen geändert, Exports
- *Bitte überall SRI (https://developer.mozilla.org/en-US/docs/Web/Security/SubresourceIntegrity) benutzen*
- CSP Header
- Als External Storage Engine benutzen wir Minio (https://docs.min.io/docs/how-to-use-aws-sdk-for-php-with-minio-server)
- Support für MultiLang
- E-Mail Notifications: Login, Auszahlung geändert, Pingback-Probleme

### Startseite: 

- Übersicht aller Projekte (Name, URL, Status (pending,active,gesperrt), API-Key) (Anregung: https://i.phenomax.me/UVFWeYQzzYXGrWzo1ntHbDCc9T.png)
- Hot-Links zu Statistiken (Query Parameter bereits gesetzt)
- Benachrichtigungen übernehmen (Glocke - siehe Theme)
- Pie Charts: Zahlungsmethoden, Länder der Kunden
Startseite: https://i.phenomax.me/hpNjmEtbggUuIes4XsymVOAgOP.png, https://i.phenomax.me/JV5a183UBbAe6MQv5JHYSPZ9K2.png
(hier also totale Umsätze aller Projekte + obige Pie Charts)


### Seite: Integration

- Verlinkung zur API Dokumentation
- Links zu vorgefertigen Plugins (WHMCS, Seller-Shop)
- Pingback Tester

### Seite: Tickets
- Neues Ticket erstellen (Kategorie: Support, Technik, Buchhaltung)
- Vorhandene Tickets sehen & drauf antworten
- Möglichkeit Dateien und Text zu verschicken

### Seite: Projekte 

Es soll möglich sein mehrere Projekte in einem Händler-Account anzulegen.


- Einstellungen (zum Projekt):
  - Allgemein: Anzeigename, URL (gesperrt nach Setup), API-Key, Callback-URL, Success_url, Cancel_url, Notify-Email, *Logo (für Branding)*
  - Bei Projekterstellung ist wird als default der Testmode aktiviert und hinterlegt.
  - Payment Einstellungen: 
     - Es gibt zwei Typen von Payment Optionen: User aktivierbare (z.B. PayPal) und von uns freischaltbare (z.B. PSC). Fees und welche Services freigeschaltet werden können,
      wird im ACP mit der Freischaltungen des Projektes bestimmt. Mit Projekterstellung wählt der User aus welche Zahlungsmethoden er freigeschaltet haben will (kann natürlich noch im Nachhinein angefragt werden). 
   - Bei User aktivierbaren wie PayPal gibt es Extra Einstellungen, in welchen der Account hinterlegt wird. Zudem wird bei Projekterstellung ein geschätztes Transaktionsvolumen angegeben. 
    Außerdem bestimmt der Kunde, wer die Gebühr bei einer Zahlungsmethode (z.B. PayPal) trägt (Kunde oder Händler)
    - Fees müssen klar mit der Methode angezeigt werden. (Z.b. 5%+0,30€..)
    - Pingback tester//builder - Sendet ein Pingack mit eingegebner UserID&reference and die Pingback URL und gibt das Response aus(Siehe Paymentwall)

### Seite: Auszahlungen

  - Auszahlungszyklus: 14 Tage nach Abrechnungsdatum (Zyklus: Alle 14/30 Tage) - auf dieser Seite bearbeitbar
  - Status der Auszahlung mit ÜbersichtsPDF/Excel (CSV) zu jeder Auszahlung mit allen Eckdaten 
  - CSV (Transaktionen, Gebühren Typ TransaktionsID, UserID,reference) PDF vlt: https://cdn.bungeecloud.org/i/1580848887921.pdf
      - Jede Auszahlung muss in der DB hinterlegt sein. (mit uniqueID)
      - Klare Darstellung der Kosten und des auszuzahlenden Betrag auf der Seite
      - Anzeige der noch offenen Beträge und Datum der Auszahlung
      - Wählbarer Zeitraum
      - Inspiration: https://dashboard.stripe.com/reports/

Startseite: Auflistung aller Auszahlungen

### Seite: Konflikte

Übersicht über Zahlungskonflikte, tabellarisch aufgelisted. Möglichkeit Lösung auszuwählen (Erstattung, Tracking-NR/Versandinformation hinzufügen) 
Anzeige über Konfilkte/60 Tage/% => Info für Kunden diese uner 1% zu halten


### Seite: Statistiken

- Alle Transaktionen in Tabelle auflistbar; Queries: Zeitraum, Zahlungsmethode, Shop, Transaktions-ID, Reference, userId, Status(erfolgreich, pingback 20X fehlgeschlagen) (vom Kunden bei Zahlung gesetzt),Datum (+ CSV Export der Ansicht sowie eines wählbaren Zeitraums X - auch hier gerne von Stripe inspirieren lassen)
- Transaktionsdetails (über Klick auf Transaktion anzeigbar)
    - Timestamps (Zahlung erstellt, Pingback ausgeführt, Pingback erfolgreich)
    - Details zu den letzten Pingbacks (Timestamp, Server Response - Header, Body,)
    - Gebühren
    - Alle Informationen der Tabellenansicht
- Grafische Darstellungen für Einnahmen und Zahlungsmethoden in Zeitraum X und für Projekt Y generierbar
- Datails zu einer Zahlung aufrufbar mit
(Zahlungsmethoden: Zeigt absolute Verkäufe der gewählten Zahlungsmethode als Line Graph an)

### Alerts

- Alert Events:
    - Neue Nachricht im Ticket
    - Pingback 20X fehlgeschlagen: Verlinkung auf die Zahlung
    - Projektstatus geändert (z.B. freigegeben)
    - Neuer Konflikt

### Profil / Einstellungen / Sicherheit

PW, E-Mail ändern
Zwei-Faktor Authentifizierung (TOTP, U2F - bitte erlauben, dass man mehrere 2FA eintragen kann)
Logs anzeigen: 
    -Logins, PW/Email/2FA/allg. Profileinstellungen Change
    - Projekt angelegt/bearbeitet
    - Auszahlungen: Einstellungen geändert, Exports
Kundenverifikation (analog zu https://i.phenomax.me/nTVgpPTYSFfZRJM8nhN95VgFMY.png)  - Daten in Minio speichern
  - Firma: Handelsregisterauszug, Kontoauszug, UST-ID (bitte hierdran orientieren: https://cdn.calypsopay.net/sofort.html )
  - Privat: Kontoauszug/Bank statement, Pass/Führerschein/ID, Adresse 

**Bsp Security log/history**
![](https://i.imgur.com/OlqblYP.png)

Auszahlungskonto: BTC oder Banküberweisung (Daten hier bearbeitbar)

### Sign Up
Username, PW, Email (mit Bestätigung), Rechtsform (oder ob privat)
Name, Adresse



## ACP

Startseite:
- Zahlungsübersicht (totaler Umsatz, Aufschlüsselung nach Zahlungsmethoden (line graph) - analog User-Startseite)

### Seite: Kundenübersicht
Impersonate (als Kunde einloggen)

### Seite: Projekte
Suchfunktion (analog zum User-Panel nur eben global)
Übersicht über angefragte Projekte (seitens des Kunden)
Möglichkeit diese freizugeben und Fees zu setzen (vgl. Beschreibung im User Panel)

### Seite: Buchhaltung
Übersicht über Auszahlungen (welche zu bezahlen sind)
Möglichkeit diese auf "ausgezahlt" zu setzen + interner Vermerk von Buchungsnr. bzw PDF-Belegupload

### Seite: Disputes
Möglichkeit Disputes bei Transaktionen zu eröffnen, welche dann an den Kunden weitergegeben werden. 
Dieser kann dann Beweise (PDF, Freitext) angeben und den Dispute annehmen oder ablehnen.
Gründe für Disputes bitte von Stripe (https://stripe.com/docs/disputes) übernehmen
Zudem wird die Zahlung, sobald ein Dispute eingeleitet wird, auf DISPUTED gesetzt und eine projektspezifische Dispute-Fee abgezogen.

### Seite: Transaktionen
Suchfunktion (analog zum User-Panel nur eben global)

*Für die Volltextsuche auf allen Query-Parametern gleichzeitig müssen wir eine performante Lösung finden (z.B. elasticsearch)
https://www.phpclasses.org/package/10168-PHP-Index-and-search-MySQL-records-with-Elastic-Search.html*