Description
The endpoint transmits user data directly to Novum Bank and returns an initial credit decision (application_state) synchronously in the API response — without the user having to make any input first.
Required: Explicit User Consent
Since user data is passed directly to Novum Bank, explicit user consent must be obtained before the API call. The timestamp and IP address of the consent are required parameters.
Differences vs /transfer_user
| Feature | /transfer_user | /transfer_user_dispatch |
| Onboarding Target | Registration, Debt Counseling, Loan Application, Small Loan | Credit Card (Florin+ by Novum Bank) — exclusively |
| Processing | Asynchronous — user receives an email | Real time — bank decision in API response |
| Bank Decision | Not returned | application_state immediately in response |
| User Consent | Standard T&Cs | Explicit Novum Bank data transfer consent |
Legal Requirements
Before the API call, the user must agree to a consent declaration covering the following points:
- Transfer of personal data to Novum Bank
- Transfer of personal data to MyWage
The consent must be documented and passed via accepted_terms_timestamp and accepted_terms_ip.
📋 Sample Consent Text
I hereby apply for the issuance of the Florin+ credit card.
I consent to the personal data I provided in this application being transferred by [Platform Name] to MyWage GmbH, Berlin, and processed there for the purpose of handling and brokering my credit card application.
I further consent to my personal data being transferred by MyWage GmbH to Novum Bank Limited, Malta, as the card-issuing credit institution, and processed by Novum Bank for the purpose of reviewing, deciding upon, and executing my credit card application.
I understand that Novum Bank Limited independently decides on the issuance of the credit card and may conduct further checks (e.g. identity and credit checks) for this purpose.
I may revoke this consent at any time with effect for the future.
Base URL
https://app.mywage.de/api/1.1/wf
Endpoint
POST https://app.mywage.de/api/1.1/wf/transfer_user_dispatch
All parameters are passed as JSON in the request body. The real-time request to the partner bank is only sent when a complete dataset is provided.
Required Parameters
The endpoint also accepts requests with missing required fields (except email and token), but the real-time request to Novum Bank is only sent when all relevant fields are complete.
| Parameter | Type | Format | Description |
| email | string | — | User's email address. |
| token | string | — | Partner access token provided by the MyWage Account Manager. The token is linked to the credit card onboarding target. |
| accepted_terms_timestamp | string | ISO 8601 | Timestamp of consent. Example: "2024-04-22T08:56Z" |
| accepted_terms_ip | string | IPv4/IPv6 | IP address of the user at the time of consent. Example: "192.168.0.1" |
Personal Data
| Parameter | Type | Format / Values | Description |
| first_name | string | — | First name. |
| last_name | string | — | Last name. |
| gender | string | "Männlich", "Weiblich", "Divers" | Gender. |
| birthday | string | YYYY.MM.DD | Date of birth. Example: "1985.03.15" |
| place_of_birth | string | — | Place of birth. |
| nationality | string | ISO 3166-1 alpha-2 | Nationality. Example: "DE" |
| family_status | string | "Ledig", "Verheiratet", "Geschieden", "Verwitwet", "Getrennt lebend" | Marital status. |
| schufa_entry | string | "True", "False" | "True" if there is a negative SCHUFA entry. If unknown, pass "False". |
Address & Living Situation
| Parameter | Type | Format / Values | Description |
| street | string | — | Street name. |
| house_number | string | — | House number. |
| postcode | string | 5 digits | Postal code. Example: "80331" |
| city | string | — | City of residence. |
| phone_number | string | E.164 | Mobile phone number. Example: "+4917634501234" |
| living_situation | string | "Bei den Eltern", "Eigentum", "Miete", "Mietfrei", "Wohngemeinschaft" | Living situation. |
| living_at_current_address_since | string | YYYY.MM.DD | Move-in date at current address. |
| is_property_owner | string | "True", "False" | Whether the user owns the property. |
| adults_in_household | string | "1", "2" | Adults in the household. "2" = 2 or more. Pass as string. |
| children_in_household | string | 0 – 6 | Children in the household. |
Employment
| Parameter | Type | Format / Values | Description |
| 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 | Employment type (German values as required by the API). |
| employer_name | string | 2–40 chars | Employer name. |
| employer_street | string | 2–40 chars | Employer street. |
| employer_house_number | string | Max. 11 chars | Employer house number. |
| employer_postcode | string | 5 digits | Employer postal code. |
| employer_city | string | 2–40 chars | Employer city. |
| working_at_current_job_since | string | YYYY.MM.DD | Employed at current employer since. |
| is_in_probation_period | string | "True", "False" | Whether the user is currently in a probationary period. |
| current_job_contract_is_limited_till | string | YYYY.MM.DD | End date of a fixed-term contract. |
| tax_class | string | "1" – "6" | Tax class (as string). |
| net_income | integer | > 0 | Monthly net income in EUR. |
Finances
| Parameter | Type | Range | Description |
| monthly_income_alimony | integer | 0 – 10,000 EUR | Monthly alimony received. |
| monthly_income_child_or_care_allowance | integer | 0 – 10,000 EUR | Monthly child benefit / care allowance. |
| monthly_income_other | integer | 0 – 10,000 EUR | Other monthly income. |
| monthly_income_pension | integer | 0 – 10,000 EUR | Monthly pension income. |
| monthly_income_verifiable_additional | integer | 0 – 10,000 EUR | Verifiable additional monthly income. |
| monthly_rent | integer | 0 – 2,500 EUR | Monthly rent including utilities. |
| monthly_expense_alimony | integer | 0 – 10,000 EUR | Monthly alimony paid. |
| monthly_expense_health_insurance | integer | 0 – 10,000 EUR | Monthly health insurance costs. |
| total_debt | integer | — | Total outstanding debt in EUR. |
| total_monthly_debt_payment | integer | — | Total monthly debt repayment in EUR. |
| total_number_of_loans | integer | — | Number of active loans. |
Tracking & Flow Control
| Parameter | Type | Description |
| partner_id | string | Click ID for granular attribution. |
| channel | string | Traffic source (e.g. "website", "email"). |
| registration_mode | string | Controls the post-registration flow:
default — Sends a link to account setup (password creation) via email. Credit card application follows after.
direct — Sends a direct link to the credit card application via email. Account setup follows after.
realtime — Like direct, plus: the link is also returned in the API response (for direct referral without email detour).
|
Response
Success Response
{
"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 Fields
| Field | Type | Description |
| status | string | "success" when the request was processed. |
| valid_steps | array | List of successfully validated data fields. With a complete dataset, the list also includes "novumbank". |
| errors | array | Fields with invalid format. Empty on success. |
| request_id | string | Unique request ID. |
| application_state | string | Initial bank decision. See below. |
| token | string | Session token for the created user. |
| user_id | string | ID of the newly created user. |
| expires | integer | Token validity in seconds (typically 86400). |
application_state — Bank Decisions
| Value | Meaning |
| PRELIMINARY_APPROVED | The application has received an initial approval. Final confirmation follows later from the bank (e.g. after identity verification). |
| REJECTED | The application was rejected by the bank. |
application_state is only returned when a complete dataset was submitted and the real-time request to Novum Bank could be executed.
Examples
Minimal Request
curl -X POST https://app.mywage.de/api/1.1/wf/transfer_user_dispatch \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"token": "your_partner_token",
"accepted_terms_timestamp": "2024-04-22T08:56Z",
"accepted_terms_ip": "192.168.0.1"
}'
Full Request
curl -X POST https://app.mywage.de/api/1.1/wf/transfer_user_dispatch \
-H "Content-Type: application/json" \
-d '{
"email": "anna.example@example.com",
"token": "your_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": "Example",
"gender": "Weiblich",
"birthday": "1985.03.15",
"place_of_birth": "Munich",
"family_status": "Verheiratet",
"job_type": "Angestellter Privatwirtschaft",
"street": "Sample Street",
"house_number": "42",
"postcode": "80331",
"city": "Munich",
"phone_number": "+4917634501234",
"nationality": "DE",
"schufa_entry": "False",
"net_income": 3500
}'
Error Codes
Note: HTTP 200 can also be returned for an invalid token (200: "Not allowed").
200 "Not allowed"Invalid token — check with your Account Manager.
400 Bad RequestMalformed data. Details in the reason field.
404 Not FoundResource not found.
500 Internal Server ErrorUnexpected server error.