Beschreibung
Der Endpunkt übermittelt Nutzerdaten und gibt eine initiale Kreditentscheidung (application_state) synchron in der API-Antwort zurück — ohne dass der Nutzer zunächst eigene Eingaben macht.
Pflicht: Explizite Nutzereinwilligung
Da Nutzerdaten direkt an Novum Bank weitergegeben werden, muss vor dem API-Call eine explizite Einwilligung eingeholt werden. Zeitstempel und IP-Adresse der Zustimmung sind Pflichtparameter.
Unterschiede zu /transfer_user
| Merkmal | /transfer_user | /transfer_user_dispatch |
| Onboarding-Ziel | Registrierung, Schuldenberatung, Kreditantrag, Kleinkredit | Florin+ Kreditkarte — ausschließlich |
| Verarbeitung | Nutzer erhält Link zum Vervollständigen (via E-Mail und/oder direkter Link) | Echtzeit — Bankentscheidung in API-Antwort |
| Bankentscheidung | Wird später via Postback zurückgegeben | application_state sofort in Response |
| Nutzereinwilligung | Standard-AGB | Explizite Einwilligung zur Datenweitergabe |
Rechtliche Anforderungen
Vor dem API-Call muss der Nutzer einer Einwilligungserklärung zustimmen, die folgende Punkte abdeckt:
- Weitergabe personenbezogener Daten an Novum Bank
- Weitergabe personenbezogener Daten an MyWage
Die Zustimmung muss dokumentiert und via accepted_terms_timestamp und accepted_terms_ip übergeben werden.
📋 Mustertext Einwilligungserklärung
Ich beantrage die Ausstellung der Florin+ Kreditkarte.
Ich willige ein, dass die von mir im Antrag angegebenen personenbezogenen Daten von [Name der Plattform] an die MyWage GmbH, Berlin übermittelt und dort zum Zweck der Bearbeitung und Vermittlung meines Kreditkartenantrags verarbeitet werden.
Ich willige ferner ein, dass meine personenbezogenen Daten von der MyWage GmbH an die Novum Bank Limited, Malta, als kartenausgebendes Kreditinstitut, übermittelt und von dieser zum Zweck der Prüfung, Entscheidung und Durchführung meines Kreditkartenantrags verarbeitet werden.
Mir ist bekannt, dass die Novum Bank Limited eigenständig über die Ausstellung der Kreditkarte entscheidet und hierzu gegebenenfalls weitere Prüfungen (z. B. Identitäts- und Bonitätsprüfungen) durchführen kann.
Diese Einwilligung kann ich jederzeit mit Wirkung für die Zukunft widerrufen.
Base URL
https://app.mywage.de/api/1.1/wf
Endpoint
POST https://app.mywage.de/api/1.1/wf/transfer_user_dispatch
Alle Parameter werden als JSON im Request-Body übergeben. Der Realtime-Request an die Partnerbank wird nur gesendet, wenn ein vollständiger Datensatz vorliegt.
Pflichtparameter
Der Endpunkt akzeptiert auch Anfragen mit fehlenden Pflichtfeldern (außer email und token), aber der Echtzeit-Request wird nur ausgeführt, wenn alle relevanten Felder vollständig übermittelt wurden.
| Parameter | Typ | Format | Beschreibung |
| email | string | — | E-Mail-Adresse des Nutzers. |
| token | string | — | Partner-Zugriffstoken, vom MyWage Account Manager bereitgestellt. Der Token ist mit dem Onboarding-Ziel Kreditkarte verknüpft. |
| accepted_terms_timestamp | string | ISO 8601 | Zeitstempel der Einwilligungserteilung. Beispiel: "2024-04-22T08:56Z" |
| accepted_terms_ip | string | IPv4/IPv6 | IP-Adresse des Nutzers zum Zeitpunkt der Einwilligung. Beispiel: "192.168.0.1" |
Persönliche Daten
| Parameter | Typ | Format / Werte | Beschreibung |
| first_name | string | — | Vorname. |
| last_name | string | — | Nachname. |
| gender | string | "Männlich", "Weiblich", "Divers" | Geschlecht. |
| birthday | string | YYYY.MM.DD | Geburtsdatum. Beispiel: "1985.03.15" |
| place_of_birth | string | — | Geburtsort. |
| nationality | string | ISO 3166-1 alpha-2 | Staatsangehörigkeit. Beispiel: "DE" |
| family_status | string | "Ledig", "Verheiratet", "Geschieden", "Verwitwet", "Getrennt lebend" | Familienstand. |
| schufa_entry | string | "True", "False" | "True" bei negativem SCHUFA-Eintrag. Bei Unbekannt: "False" übergeben. |
Adresse & Wohnsituation
| Parameter | Typ | Format / Werte | Beschreibung |
| street | string | — | Straßenname. |
| house_number | string | — | Hausnummer. |
| postcode | string | 5 Stellen | Postleitzahl. Beispiel: "80331" |
| city | string | — | Wohnort. |
| phone_number | string | E.164 | Mobiltelefonnummer. Beispiel: "+4917634501234" |
| living_situation | string | "Bei den Eltern", "Eigentum", "Miete", "Mietfrei", "Wohngemeinschaft" | Wohnsituation. |
| living_at_current_address_since | string | YYYY.MM.DD | Einzugsdatum aktuelle Adresse. |
| is_property_owner | string | "True", "False" | Eigentümer der Immobilie. |
| adults_in_household | string | "1", "2" | Erwachsene im Haushalt. "2" = 2 oder mehr. Als String übergeben. |
| children_in_household | string | 0 – 6 | Kinder im Haushalt. |
Beschäftigung
| Parameter | Typ | Format / Werte | Beschreibung |
| job_type | string | Arbeitslos, Leitender Angestellter, Zeitarbeit, Schueler/Student, Selbstaendiger, Professioneller Soldat, Soldat, Angestellter Öffentlicher Dienst, Rentner, Pensionaer, Beamter, Nicht Erwerbstaetiger, Hausfrau/Hausmann, Auszubildender/Lehrling, Arbeiter Privatwirtschaft, Angestellter Privatwirtschaft, Arbeiter Öffentlicher Dienst | Beschäftigungsart. |
| employer_name | string | 2–40 Zeichen | Name des Arbeitgebers. |
| employer_street | string | 2–40 Zeichen | Straße des Arbeitgebers. |
| employer_house_number | string | Max. 11 Zeichen | Hausnummer des Arbeitgebers. |
| employer_postcode | string | 5 Stellen | PLZ des Arbeitgebers. |
| employer_city | string | 2–40 Zeichen | Stadt des Arbeitgebers. |
| working_at_current_job_since | string | YYYY.MM.DD | Beschäftigt beim aktuellen Arbeitgeber seit. |
| is_in_probation_period | string | "True", "False" | Probezeit aktiv. |
| current_job_contract_is_limited_till | string | YYYY.MM.DD | Ende eines befristeten Vertrags. |
| tax_class | string | "1" – "6" | Steuerklasse (als String). |
| net_income | integer | > 0 | Monatliches Nettoeinkommen in EUR. |
Finanzen
| Parameter | Typ | Bereich | Beschreibung |
| monthly_income_alimony | integer | 0 – 10.000 EUR | Monatliche Unterhaltszahlungen (Einnahmen). |
| monthly_income_child_or_care_allowance | integer | 0 – 10.000 EUR | Kindergeld / Pflegegeld monatlich. |
| monthly_income_other | integer | 0 – 10.000 EUR | Sonstiges monatliches Einkommen. |
| monthly_income_pension | integer | 0 – 10.000 EUR | Monatliche Rente. |
| monthly_income_verifiable_additional | integer | 0 – 10.000 EUR | Nachweisbares Zusatzeinkommen monatlich. |
| monthly_rent | integer | 0 – 2.500 EUR | Monatliche Miete inkl. Nebenkosten. |
| monthly_expense_alimony | integer | 0 – 10.000 EUR | Monatliche Unterhaltsausgaben. |
| monthly_expense_health_insurance | integer | 0 – 10.000 EUR | Monatliche Krankenversicherungskosten. |
| total_debt | integer | — | Gesamte ausstehende Schulden in EUR. |
| total_monthly_debt_payment | integer | — | Gesamte monatliche Schuldentilgung in EUR. |
| total_number_of_loans | integer | — | Anzahl aktiver Kredite. |
Tracking & Flow-Steuerung
| Parameter | Typ | Beschreibung |
| partner_id | string | Click-ID für granulare Attribution. |
| channel | string | Traffic-Quelle (z.B. "website", "email"). |
| registration_mode | string | Steuert den Post-Registrierungs-Flow:
default — Link zur Kontoeinrichtung (Passwort-Vergabe) per E-Mail. Kreditkartenantrag danach.
direct — Direktlink zum Kreditkartenantrag per E-Mail. Kontoeinrichtung danach.
realtime — Wie direct, plus: Link kommt zusätzlich in der API-Response..
|
Response
Erfolgreiche Antwort
{
"status": "success",
"response": {
"valid_steps": [
"first_name", "last name", "gender",
"birthday and place of birth", "family status",
"job_type", "address", "phone number",
"nationality", "schufa entry", "novumbank"
],
"errors": [],
"request_id": "1774620800403x...",
"application_state": "PRELIMINARY_APPROVED",
"token": "bus|1774620799939x...|1774620799987x...",
"user_id": "1774620799939x...",
"expires": 86400
}
}
Response-Felder
| Feld | Typ | Beschreibung |
| status | string | "success" wenn der Request verarbeitet wurde. |
| valid_steps | array | Liste valide übermittelter Datenfelder. Bei vollständigem Datensatz enthält die Liste auch "novumbank". |
| errors | array | Felder mit ungültigem Format. Leer bei Erfolg. |
| request_id | string | Eindeutige Anfrage-ID. |
| application_state | string | Initiale Kreditentscheidung. Siehe unten. |
| token | string | Session-Token des erstellten Nutzers. |
| user_id | string | ID des neu angelegten Nutzers. |
| expires | integer | Token-Gültigkeit in Sekunden (typisch 86400). |
application_state — Bankentscheidungen
| Wert | Bedeutung |
| PRELIMINARY_APPROVED | Der Antrag hat eine initiale Genehmigung erhalten. Die finale Bestätigung erfolgt später durch die Bank (nach z.B. Identitätsprüfung). |
| REJECTED | Der Antrag wurde von der Bank abgelehnt. |
application_state wird nur zurückgegeben, wenn ein vollständiger Datensatz übermittelt wurde und der Echtzeit-Request ausgeführt werden konnte.
Beispiele
Minimaler Request
curl -X POST https://app.mywage.de/api/1.1/wf/transfer_user_dispatch \
-H "Content-Type: application/json" \
-d '{
"email": "nutzer@example.com",
"token": "ihr_partner_token",
"accepted_terms_timestamp": "2024-04-22T08:56Z",
"accepted_terms_ip": "192.168.0.1"
}'
Vollständiger Request
curl -X POST https://app.mywage.de/api/1.1/wf/transfer_user_dispatch \
-H "Content-Type: application/json" \
-d '{
"email": "anna.beispiel@example.com",
"token": "ihr_partner_token",
"accepted_terms_timestamp": "2024-04-22T08:56Z",
"accepted_terms_ip": "192.168.0.1",
"partner_id": "click_abc123",
"channel": "website",
"registration_mode": "direct",
"first_name": "Anna",
"last_name": "Beispiel",
"gender": "Weiblich",
"birthday": "1985.03.15",
"place_of_birth": "München",
"family_status": "Verheiratet",
"job_type": "Angestellter Privatwirtschaft",
"street": "Musterstrasse",
"house_number": "42",
"postcode": "80331",
"city": "München",
"phone_number": "+4917634501234",
"nationality": "DE",
"schufa_entry": "False",
"net_income": 3500
}'
Fehlercodes
Achtung: HTTP 200 kann auch bei ungültigem Token zurückgegeben werden (200: "Not allowed").
200 "Not allowed"Ungültiger Token — beim Account Manager prüfen.
400 Bad RequestFehlerhafte Daten. Details im Feld reason.