POST /transfer_user_dispatch

Creates a new user and submits a credit card application to Novum Bank in real time. Unlike /transfer_user, this endpoint processes the request synchronously — the partner receives the initial bank decision directly in the API response. Supports exclusively the onboarding target Credit Card (Florin+ by Novum Bank).

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 TargetRegistration, Debt Counseling, Loan Application, Small LoanCredit Card (Florin+ by Novum Bank) — exclusively
ProcessingAsynchronous — user receives an emailReal time — bank decision in API response
Bank DecisionNot returnedapplication_state immediately in response
User ConsentStandard T&CsExplicit Novum Bank data transfer consent

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.
ParameterTypeFormatDescription
emailstringUser's email address.
tokenstringPartner access token provided by the MyWage Account Manager. The token is linked to the credit card onboarding target.
accepted_terms_timestampstringISO 8601Timestamp of consent. Example: "2024-04-22T08:56Z"
accepted_terms_ipstringIPv4/IPv6IP address of the user at the time of consent. Example: "192.168.0.1"

Personal Data

ParameterTypeFormat / ValuesDescription
first_namestringFirst name.
last_namestringLast name.
genderstring"Männlich", "Weiblich", "Divers"Gender.
birthdaystringYYYY.MM.DDDate of birth. Example: "1985.03.15"
place_of_birthstringPlace of birth.
nationalitystringISO 3166-1 alpha-2Nationality. Example: "DE"
family_statusstring"Ledig", "Verheiratet", "Geschieden", "Verwitwet", "Getrennt lebend"Marital status.
schufa_entrystring"True", "False""True" if there is a negative SCHUFA entry. If unknown, pass "False".

Address & Living Situation

ParameterTypeFormat / ValuesDescription
streetstringStreet name.
house_numberstringHouse number.
postcodestring5 digitsPostal code. Example: "80331"
citystringCity of residence.
phone_numberstringE.164Mobile phone number. Example: "+4917634501234"
living_situationstring"Bei den Eltern", "Eigentum", "Miete", "Mietfrei", "Wohngemeinschaft"Living situation.
living_at_current_address_sincestringYYYY.MM.DDMove-in date at current address.
is_property_ownerstring"True", "False"Whether the user owns the property.
adults_in_householdstring"1", "2"Adults in the household. "2" = 2 or more. Pass as string.
children_in_householdstring0 – 6Children in the household.

Employment

ParameterTypeFormat / ValuesDescription
job_typestringArbeitslos, 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 DienstEmployment type (German values as required by the API).
employer_namestring2–40 charsEmployer name.
employer_streetstring2–40 charsEmployer street.
employer_house_numberstringMax. 11 charsEmployer house number.
employer_postcodestring5 digitsEmployer postal code.
employer_citystring2–40 charsEmployer city.
working_at_current_job_sincestringYYYY.MM.DDEmployed at current employer since.
is_in_probation_periodstring"True", "False"Whether the user is currently in a probationary period.
current_job_contract_is_limited_tillstringYYYY.MM.DDEnd date of a fixed-term contract.
tax_classstring"1" – "6"Tax class (as string).
net_incomeinteger> 0Monthly net income in EUR.

Finances

ParameterTypeRangeDescription
monthly_income_alimonyinteger0 – 10,000 EURMonthly alimony received.
monthly_income_child_or_care_allowanceinteger0 – 10,000 EURMonthly child benefit / care allowance.
monthly_income_otherinteger0 – 10,000 EUROther monthly income.
monthly_income_pensioninteger0 – 10,000 EURMonthly pension income.
monthly_income_verifiable_additionalinteger0 – 10,000 EURVerifiable additional monthly income.
monthly_rentinteger0 – 2,500 EURMonthly rent including utilities.
monthly_expense_alimonyinteger0 – 10,000 EURMonthly alimony paid.
monthly_expense_health_insuranceinteger0 – 10,000 EURMonthly health insurance costs.
total_debtintegerTotal outstanding debt in EUR.
total_monthly_debt_paymentintegerTotal monthly debt repayment in EUR.
total_number_of_loansintegerNumber of active loans.

Tracking & Flow Control

ParameterTypeDescription
partner_idstringClick ID for granular attribution.
channelstringTraffic source (e.g. "website", "email").
registration_modestringControls 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

FieldTypeDescription
statusstring"success" when the request was processed.
valid_stepsarrayList of successfully validated data fields. With a complete dataset, the list also includes "novumbank".
errorsarrayFields with invalid format. Empty on success.
request_idstringUnique request ID.
application_statestringInitial bank decision. See below.
tokenstringSession token for the created user.
user_idstringID of the newly created user.
expiresintegerToken validity in seconds (typically 86400).

application_state — Bank Decisions

ValueMeaning
PRELIMINARY_APPROVEDThe application has received an initial approval. Final confirmation follows later from the bank (e.g. after identity verification).
REJECTEDThe 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.