This guide explains how to prepare for and manage payments during the payout phase. This phase begins once an end user reaches their agreed payout date (a date between their 65th and 70th birthdays) and begins to receive income from their pension accounts.
End users have the option to withdraw up to 30% of the capital available at the start of the payout phase. This amount is delivered as a lump sum payment.
During the payout phase, the German pension automatically transitions into a payout plan (Auszahlungsplan). This plan runs at least until completion of the end user’s 85th year.
The monthly payment amount is calculated at the start of the plan after the lump sum has been paid. The plan is then recalculated annually. Each recalculation divides at least 80% of remaining capital by the months left until the end of the term. Any residual capital is paid out with the final instalment.
Users with very small pension amounts (“Kleinbetragsrente”) can withdraw 100% when the Payout phase commences (§ 93 Abs. 3 EStG).
- Authentication scopes -
pensions:admin,reports:admin - Webhook handler ready — Set up a webhook endpoint to listen for updates relating to transfers
- Subscribe to
PENSION_DE_PAYOUT_CONFIGURATION.*events. - Subscribe to
REPORT.*events.
- Subscribe to
- For more information, refer to Implementing webhooks.
To prepare for the payout phase, Upvest automatically creates a payout configuration for the end user at tax wrapper activation. This ensures that all end users have a defined payout date for their pension contract, which informs notifications in the lead-up to the payout date.
Upvest uses the following defaults on creation:
- Payout start date, informed by the
expected_payout_agestated in the tax wrapper and the end user's date of birth. - The contract end date defaults to the end user’s 85th birthday.
- Partial lump sum withdrawal set to 0%.
- Recurring payments set at a cadence of monthly.
These values can be updated via a PATCH request at any time before the payout phase begins. In the PATCH response, the API provides a predicted payout value for the partial lump sum and the recurring payment.
After payout has begun, only the contract end date and cadence can be updated. These values are then used in the annual recalculation of the recurring payment.
When the tax wrapper is activated, Upvest sends a PENSION_DE_PAYOUT_CONFIGURATION.CREATED webhook event through the Payout configuration webhook.
During the end user’s accumulation phase, you can retrieve or update the end user’s payout configuration by sending a GET or PATCH request to the /pension_de/wrappers/{tax_wrapper_id}/payout_configuration endpoint.
Example retrieving the payout configuration
GET /pension_de/wrappers/{tax_wrapper_id}/payout_configuration
{
"id": "7a1e9c3d-52f4-4b08-9d61-8e2f0c5a4b7e",
"tax_wrapper_id": "3f8e2a71-9c4b-4d16-b5a0-6e9d1c7f2a84",
"payout_start_date": "2048-04-01",
"contract_end_date": "2068-04-01",
"payout_phase": "NOT_STARTED",
"payout_configuration": {
"pension_lump_sum": {
"as_percentage": "0.25",
"currency": "EUR",
"predicted_cash_amount": "131250.00"
},
"recurring_payout": {
"period": "MONTH",
"interval": 1,
"currency": "EUR",
"predicted_cash_amount": "1640.62"
}
},
"created_at": "2027-04-01T06:00:00.000Z",
"updated_at": "2027-04-08T06:00:00.000Z"
}Example updating the payout configuration
PATCH /pension_de/wrappers/{tax_wrapper_id}/payout_configuration
{
"payout_configuration": {
"pension_lump_sum": {
"as_percentage": "0.3"
},
"recurring_payout": {
"interval": 1,
"period": "YEAR"
}
}
}| Field | Description |
|---|---|
id | The unique identifier for the payout configuration. |
tax_wrapper_id | The unique identifier for the tax wrapper. |
payout_start_date | The beginning date for entering the payout phase. This value cannot equal a date before the end user’s 65th birthday. |
contract_end_date | The final date when the German pension plan ends. This date triggers a lump sum payment for the remaining balance in the account. This value cannot equal a date before the end user’s 85th birthday. |
payout_phase | The current status of the payout. This field shows the following statuses: - NOT_STARTED: The pension plan is still in the accumulation phase. End users can still update the payment configuration. - STARTED: A withdrawal plan has been created and payouts begin. - CLOSED: The plan has reached the contract_end_date and begun issuing the final lump sum payment and closing the German pension plan. |
payout_configuration.pension_lump_sum.as_percentage | The percentage of the German pension plan that will be sent as a one-off lump sum payment at the start of the payout phase. End users can set a maximum of 30% for the initial lump sum payment. |
payout_configuration.pension_lump_sum.currency | The currency for the initial lump sum payment. The field supports EUR. |
payout_configuration.pension_lump_sum.predicted_cash_amount | The calculated amount for the initial lump sum based on a percentage of the current value of the German pension plan. The percentage is set in payout_configuration.pension_lump_sum.as_percentage, which supports a maximum of 30%. |
payout_configuration.recurring_payout.period | This value sets the frequency of payments for the payout phase. This field supports MONTH (payments sent each month) and YEAR (payments sent annually). This field works with the payout_configuration.recurring_payout.interval field to set the overall payment frequency. |
payout_configuration.recurring_payout.interval | The number of periods between payments. For example, to set payments to occur every three months (i.e., quarterly), set payout_configuration.recurring_payout.period to MONTH and payout_configuration.recurring_payout.interval to 3. |
payout_configuration.recurring_payout.currency | The currency of recurring payments. The field supports EUR. |
payout_configuration.recurring_payout.predicted_cash_amount | The calculated amount for recurring payments during the payout phase. |
Upvest provides notifications as the end user approaches their payout date:
- Standarddepot: The notification timing incorporates the glide path and a notification 12 months before the payout date.
- Altersvorsorgedepot: The notification is triggered 12 months before the payout date.
Following a notification, clients should prompt the end user to confirm their payout details. This can result in the following scenarios:
- Payout date updated to a later date (within the 65–70 age range): The end user will be notified again 12 months before the new payout date (or any relevant glide path notification using the new payout date).
- Payout date maintained, or moved to an earlier date: The process proceeds to the next step.
As part of confirming or moving the payout date, the end user can also:
- Update the percentage amount they wish to withdraw as partial lump sum (up to 30%) at the start of the payout phase.
- Update the contract end date (default is age 85; cannot be set earlier).
- Update the cadence of the recurring payout. Upvest supports monthly, multi-monthly (e.g., every three months), or annual payments.
Ahead of the payout phase, the end user receives a §7b report. The report includes:
- Details of the payout plan (for example, amount and duration) after any lump sum is taken.
- Costs applicable during the payout phase.
- Payout commencement date.
The §7b report is created automatically whenever the payout configuration is updated (via PATCH) within two years of the end user’s payout date. The update confirms the lump sum amount, payout cadence, payout start date, and contract end date that the end user wants during the payout phase.
Clients can also request a §7b report to be generated by calling a POST to /reports and selecting the §7b report.
If no §7b report is generated 9 months before the payout date, the report is issued automatically using the existing values (either the defaults or the most recent update).
On generation of the §7b report, clients receive a notification from the Reports event webhook which includes the report’s unique identifier report_id. The report is then available for collection and must be sent to the end user as the official notification of the start of their payout phase.
To retrieve the §7b report, submit a GET request with the report_id in the request path:
GET /reports/{report_id}
In the response, Upvest passes a generated JSON object with the details of the §7b report.
To retrieve a PDF version of the §7b report, call the GET /reports/{report_id} endpoint with accept: application/pdf in the header.
If the end user updates the values of the payout configuration after a §7b report is sent, a new §7b report will be generated.
In the years before the payout phase, clients should de-risk the end user’s pension account by changing the allocation between the two funds. The goal is to minimise the risk profile of their investments by decreasing their investment in the higher risk class fund.
There are two approaches to achieving the glide path:
- Self-balancing orders: Attempts to achieve the new allocation ahead of the mandated rebalance dates by updating the allocation earlier and using self-balancing orders to invest new contributions into the position that is under the target allocation. For information on portfolio order distributions and self-balancing orders, refer to the section on Configuring portfolio order distributions.
- Mandated rebalance events: Triggering a rebalance at set milestones, listed in the table below, to sell and buy into the new allocation. For more information on rebalancing, refer to the Triggering a rebalancing guide.
Unless the end user overwrites with new allocations, the prescribed allocations are as follows.
| Years before payout date | Fund A allocation | Fund B allocation |
|---|---|---|
| 5 years before payout | 50% | 50% |
| 2 years before payout | 70% | 30% |
| Payout start date | 70% | 30% |
Fund A: one UCITS fund such as an ETF or mutual fund, with a risk class of 1 to 2 (lower risk).
Fund B: one UCITS fund such as an ETF or mutual fund, with a risk class of 3 to 5 (medium to higher risk).
Upvest notifies the client of the upcoming rebalance
Upvest sends a notification six months before the rebalance is due (recurring).
Client notifies the end user
Client receives the notification and notifies the end user that a rebalancing will occur in the next six months. The client also provides the option to request a different allocation or update the payout date.
End user makes decision
The end user can decide to retain the default values or override with a different allocation. They may also update their payout phase configuration, for example, to indicate an alternative start date.
Client sets the allocation (portfolio accounts)
Where the client utilises Upvest portfolio accounts the client can:
- Create the allocations
- Connect the pension account to the applicable allocation via a
PATCHto /portfolios/configurations/{account_id}. This does not trigger a rebalance. - Upvest updates the allocation associated with the account.
Upvest notifies that the rebalance is due
Upvest sends a notification that the rebalance is due at the following intervals: five years before payout, two years before payout, and on the payout date (recurring).
Client triggers the rebalance
Client receives the notification and triggers the rebalance.
Portfolio accounts only: Client can send a POST /portfolios/rebalancings/executions request to trigger.
Upvest executes the rebalance (portfolio accounts only)
Upvest executes the rebalance, on success, positions are updated.
This is a recurring process, running first at five years before the payout, then two years before the payout, and at the commencement of payout. In all cases, the end user can amend their preferred start date for the payout phase up to at least three months in advance of payout.
Upvest only notifies the client for the rebalance events. If clients wish to use self-balancing orders to achieve or minimise the rebalance requirement this must be started at an earlier date defined by the client and set out in your terms and conditions.
Rebalances are not supported in trading accounts. Clients must place buy and sell orders directly to achieve the mandated rebalances.
Once the payout date is reached, an optional partial lump sum is calculated using the percentage value set out on the payout configuration, if present. This calculation is based on the total current valuation and paid directly to the end user. The remaining capital is automatically used to calculate a withdrawal plan using the cadence stated in the payout configuration.
This withdrawal plan manages recurring execution and payment: directly to the end user in a pre-funding setup, or to the client pooling account in a post-trade setup. Withdrawal plans hold their own ID, which is notified via webhook.
Upvest manages the regulatory requirement to recalculate the withdrawal plan based on current valuations. This is run on the anniversary of the end user’s original payout date.
After payout has started end users may only change the values of:
- The contract end date.
- The cadence of the payout plan.
Upvest calculates the recurring payment
Upvest calculates the recurring payment amounts based on remaining capital and months until the contract end date.
Upvest creates a withdrawal plan
Upvest creates a withdrawal plan based on these values.
Upvest places a sell order
Upvest creates and places a sell order, increasing the cash balance.
Client receives sell order confirmation
Client receives sell order confirmation and waits for settlement.
Cash is delivered (post-trade settlement)
For post-trade settlement clients:
- Upvest transfers cash to the pension pooling account once sell orders are settled and notifies the client.
- Client views updated positions and receives cash in the pooling account, then pays cash to the end user.
Cash is delivered (pre-funding)
For pre-funding clients:
- Upvest triggers a withdrawal to the end user’s reference account.
- Client views updated positions.
Upvest performs the annual recalculation
Upvest performs annual recalculation of the payout plan and updates the withdrawal plan. Clients are notified of the updated plan via webhook.
Once the contract end date is reached any residual value is paid out in full to the end user.
During the payout phase end users may also transfer out in full to another provider. If the end user passes away before the contract ends, the remaining capital is processed according to current regulations and paid to the beneficiaries.
When a payout configuration is created or modified, the following events are sent via webhooks. In addition, the event flow includes time based notifications tailored to whether it is an Altersvorsorgedepot or a Standarddepot plan.
To help navigation across different stages, the payout configuration webhook includes a payout_phase as shown below.
| Event type | Trigger | Description |
|---|---|---|
PENSION_DE_PAYOUT_CONFIGURATION.CREATED payout_phase: NOT_STARTED | Configuration automatically created | Alerts clients when the payout configuration is created. This occurs automatically once the tax wrapper is activated. |
PENSION_DE_PAYOUT_CONFIGURATION.CONFIRMATION_REQUIRED payout_phase: NOT_STARTED | Twelve months before the payout date | First notification sent to clients to prepare for the end user’s payout start date. Clients should confirm the end user’s payout settings as described in Before the payout phase begins. |
PENSION_DE_PAYOUT_CONFIGURATION.PAYOUT_APPROACHING payout_phase: NOT_STARTED | Nine months before the payout date | Last notification sent to clients where no §7b exists for the end user. If no §7b generated Upvest will automatically generate based on current values in the payout configuration. |
PENSION_DE_PAYOUT_CONFIGURATION.UPDATED payout_phase: NOT_STARTED | Payout configuration updated | Sent whenever the payout configuration is updated. In the lead up to payout phase this will also generate §7b report. Clients should retrieve the §7b report from the /reports endpoint. |
PENSION_DE_PAYOUT_CONFIGURATION .UPDATED payout_phase: STARTED | Withdrawal plan created or updated | Sent any time after a withdrawal plan has been created or updated for the payout phase and a withdrawal is added or updated (after a calculation event). Clients should provide end users with the updated plan details. |
PENSION_DE_PAYOUT_CONFIGURATION.UPDATED payout_phase: CLOSED | End user's contract end date | Once the contract ends, clients should inform end users of their upcoming residual lump sum payment. |
PENSION_DE_PAYOUT_CONFIGURATION.UPDATED payout_phase: CLOSED | Account transferred out or passed onto beneficiaries | Sent once the account has been transferred out. No client action is required. |
| Event type | Trigger | Description |
|---|---|---|
PENSION_DE_PAYOUT_CONFIGURATION.CREATED payout_phase: NOT_STARTED | Configuration created | Sent automatically when the payout configuration is created. No client action required. |
PENSION_DE_PAYOUT_CONFIGURATION.GLIDE_PATH_APPROACHING payout_phase: NOT_STARTED | Six months before glide path milestone | Signals that a glide path milestone is approaching. Six months prior is the mandated rebalance. |
PENSION_DE_PAYOUT_CONFIGURATION.REBALANCE_REQUIRED payout_phase: NOT_STARTED | Five years before payout date | Sent when rebalancing is due, five years before payout. Clients should rebalance the portfolio to 50/50. |
PENSION_DE_PAYOUT_CONFIGURATION.REBALANCE_REQUIRED payout_phase: NOT_STARTED | Two years before payout date | Sent when rebalancing is due, two years before payout. Clients should rebalance the portfolio to 70/30. |
PENSION_DE_PAYOUT_CONFIGURATION.CONFIRMATION_REQUIRED payout_phase: NOT_STARTED | Twelve months before payout date | First confirmation notice ahead of payout. Clients should obtain the end user’s final confirmation of the payout start date, end date, recurring cadence, and lump sum percentage. |
PENSION_DE_PAYOUT_CONFIGURATION.PAYOUT_APPROACHING payout_phase: NOT_STARTED | Nine months before payout date | Last notification sent to clients where no §7b exists for the end user. If no §7b generated Upvest will automatically generate based on current values in the payout configuration. |
PENSION_DE_PAYOUT_CONFIGURATION.UPDATED payout_phase: NOT_STARTED | Payout configuration update | Sent whenever the payout configuration is updated. In the lead up to payout phase will also generate §7b report. Clients should retrieve the report from the reports endpoint. |
PENSION_DE_PAYOUT_CONFIGURATION.REBALANCE_REQUIRED payout_phase: NOT_STARTED | At payout date | Final rebalance to correct any drift from the two-year balance. Clients should rebalance the portfolio to 70/30. |
PENSION_DE_PAYOUT_CONFIGURATION.UPDATED payout_phase: STARTED | Withdrawal plan created or a new plan added | Sent during the payout phase when a withdrawal plan is created, or when a new plan is added after a calculation event. Clients can display the updated plan to end users. Note: The end user's tax allowance is reduced to zero. |
PENSION_DE_PAYOUT_CONFIGURATION.UPDATED payout_phase: CLOSED | Contract end date | Sent when the contract concludes. Clients should inform end users of the upcoming lump sum payment. |
PENSION_DE_PAYOUT_CONFIGURATION.UPDATED payout_phase: CLOSED | Account transferred out | Sent once the account has been transferred out. No client action required. |