POST | /ext/pensionsinfo |
---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TransactionHeader:
version_number: Optional[int] = None
transaction_id: Optional[str] = None
transactions_type_number: Optional[int] = None
event_time: Optional[datetime.datetime] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AnswerSendPensionPlanHeader(TransactionHeader):
social_security_number: Optional[str] = None
report_received: Optional[bool] = None
provider_remark: Optional[bytes] = None
error_text: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SendPensionPlanToProviderResponseVer9DTO:
header: Optional[AnswerSendPensionPlanHeader] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SendPensionPlanHeader(TransactionHeader):
social_security_number: Optional[str] = None
cohabitant_social_security_number: Optional[str] = None
customer_remark: Optional[bytes] = None
system_info: Optional[str] = None
pension_provider_id: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Pdf:
pdf_report: Optional[bytes] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RemarkVer9DTO:
type_number: Optional[int] = None
number: Optional[int] = None
text: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PremiumWaiverBenefitVer9DTO:
is_eligible: Optional[bool] = None
is_active: Optional[bool] = None
value: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BenefitPaymentVer9DTO:
benefit_payment: Optional[int] = None
payment_year_to_date: Optional[int] = None
latest_payment_date: Optional[datetime.datetime] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PayoutForecastVer9DTO:
age: Optional[int] = None
amount: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BeneficiaryVer9DTO:
name: Optional[str] = None
percentage: Optional[int] = None
type_number: Optional[int] = None
type_text: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DateAgeTypeVer9DTO:
date: Optional[datetime.datetime] = None
age: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PayoutVer9DTO:
current_payment: Optional[bool] = None
payout_forecasts: Optional[List[PayoutForecastVer9DTO]] = None
payment_form_number: Optional[int] = None
payment_form_text: Optional[str] = None
payment_taxation_number: Optional[int] = None
payment_taxation_text: Optional[str] = None
receiver_number: Optional[int] = None
receiver_text: Optional[str] = None
condition_number: Optional[int] = None
condition_text: Optional[str] = None
condition_parameter: Optional[int] = None
beneficiaries: Optional[List[BeneficiaryVer9DTO]] = None
payout_start: Optional[DateAgeTypeVer9DTO] = None
payout_end: Optional[DateAgeTypeVer9DTO] = None
latest_possible_payout: Optional[DateAgeTypeVer9DTO] = None
earliest_possible_payout: Optional[DateAgeTypeVer9DTO] = None
latest_payout_start: Optional[DateAgeTypeVer9DTO] = None
payment_years: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RiskBenefitVer9DTO:
shadow_benefit: Optional[bool] = None
amount: Optional[int] = None
amount_date: Optional[datetime.datetime] = None
risk_termination: Optional[DateAgeTypeVer9DTO] = None
benefit_extent_number: Optional[int] = None
benefit_detail: Optional[List[int]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InvestmentDistributionVer9DTO:
investment_form_number: Optional[int] = None
investment_identification: Optional[str] = None
investment_value: Optional[int] = None
investment_value_date: Optional[datetime.datetime] = None
pending_yield_amount: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ForecastVer9DTO:
age: Optional[int] = None
amount: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ForecastCalculationVer9DTO:
forecast_start_age: Optional[int] = None
remarks: Optional[List[RemarkVer9DTO]] = None
forecasts: Optional[List[ForecastVer9DTO]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PensionForecastsVer9DTO:
pension_payment: Optional[bool] = None
early_retirement_deduction: Optional[bool] = None
calculate_forecasts: Optional[bool] = None
forecast_interest_type: Optional[int] = None
price_index_regulated: Optional[bool] = None
real_income_regulated: Optional[bool] = None
enter_payment_enabled: Optional[bool] = None
forecast_calculation_date: Optional[datetime.datetime] = None
forecasts_calculations: Optional[List[ForecastCalculationVer9DTO]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PensionBenefitVer9DTO:
pension_type_number: Optional[int] = None
pension_type: Optional[str] = None
index_contract_count: Optional[int] = None
investment_distributions: Optional[List[InvestmentDistributionVer9DTO]] = None
pension_forecasts: Optional[PensionForecastsVer9DTO] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BenefitVer9DTO:
transaction_status: Optional[int] = None
type_number: Optional[int] = None
type_text: Optional[str] = None
subscription_type_number: Optional[int] = None
subscription_type_text: Optional[str] = None
can_be_shown_in_graph: Optional[bool] = None
more_info_url: Optional[str] = None
system_info: Optional[str] = None
premium_waiver_benefit: Optional[PremiumWaiverBenefitVer9DTO] = None
payment: Optional[BenefitPaymentVer9DTO] = None
payout: Optional[PayoutVer9DTO] = None
risk: Optional[RiskBenefitVer9DTO] = None
pension: Optional[PensionBenefitVer9DTO] = None
remarks: Optional[List[RemarkVer9DTO]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PensionSchemeVer9DTO:
transaction_status: Optional[int] = None
reference_number: Optional[str] = None
type_number: Optional[int] = None
phone: Optional[int] = None
contact: Optional[str] = None
email: Optional[str] = None
payment: Optional[int] = None
payment_date: Optional[datetime.datetime] = None
saved_value: Optional[int] = None
saved_value_date: Optional[datetime.datetime] = None
saved_value_presentation: Optional[int] = None
system_info_scheme: Optional[str] = None
business_partner_number: Optional[int] = None
guarantees: Optional[int] = None
transfer_costs: Optional[int] = None
transfer_costs_job_change: Optional[int] = None
repurchase: Optional[int] = None
repurchase_text: Optional[bytes] = None
has_withdrawal_penalty: Optional[bool] = None
benefit_composition: Optional[bool] = None
investment_form_number: Optional[int] = None
business_partner: Optional[str] = None
word_split_character: Optional[int] = None
remarks: Optional[List[RemarkVer9DTO]] = None
benefits: Optional[List[BenefitVer9DTO]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PensionProviderVer9DTO:
pension_provider_id: Optional[int] = None
pension_provider_name: Optional[str] = None
word_split_character: Optional[int] = None
web_site_url: Optional[str] = None
currency_code: Optional[str] = None
advisor_name: Optional[str] = None
receive_data_for_advisory: Optional[bool] = None
transaction_status: Optional[int] = None
schemes: Optional[List[PensionSchemeVer9DTO]] = None
transaction_remarks: Optional[List[RemarkVer9DTO]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PensionsInfoExtReq:
header: Optional[SendPensionPlanHeader] = None
pdf: Optional[Pdf] = None
cohabitant_pdf: Optional[Pdf] = None
pension_providers: Optional[List[PensionProviderVer9DTO]] = None
cohabitant_pension_providers: Optional[List[PensionProviderVer9DTO]] = None
Python PensionsInfoExtReq DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /ext/pensionsinfo HTTP/1.1
Host: hcbtas-q-albamfs-api.azurewebsites.net
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<PensionsInfoExtReq xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/AlbaApi.ServiceModel">
<CohabitantPdf xmlns:d2p1="http://schemas.datacontract.org/2004/07/AlbaMfs.Common.PensionsInfo">
<d2p1:PdfReport>AA==</d2p1:PdfReport>
</CohabitantPdf>
<CohabitantPensionProviders xmlns:d2p1="http://schemas.datacontract.org/2004/07/AlbaMfs.Common.PensionsInfo">
<d2p1:PensionProviderVer9DTO>
<d2p1:AdvisorName>String</d2p1:AdvisorName>
<d2p1:CurrencyCode>String</d2p1:CurrencyCode>
<d2p1:PensionProviderId>0</d2p1:PensionProviderId>
<d2p1:PensionProviderName>String</d2p1:PensionProviderName>
<d2p1:ReceiveDataForAdvisory>false</d2p1:ReceiveDataForAdvisory>
<d2p1:Schemes i:nil="true" />
<d2p1:TransactionRemarks i:nil="true" />
<d2p1:TransactionStatus>0</d2p1:TransactionStatus>
<d2p1:WebSiteUrl>String</d2p1:WebSiteUrl>
<d2p1:WordSplitCharacter>0</d2p1:WordSplitCharacter>
</d2p1:PensionProviderVer9DTO>
</CohabitantPensionProviders>
<Header xmlns:d2p1="http://schemas.datacontract.org/2004/07/AlbaMfs.Common.PensionsInfo">
<d2p1:EventTime xmlns:d3p1="http://schemas.datacontract.org/2004/07/System">
<d3p1:DateTime>0001-01-01T00:00:00Z</d3p1:DateTime>
<d3p1:OffsetMinutes>0</d3p1:OffsetMinutes>
</d2p1:EventTime>
<d2p1:TransactionId>String</d2p1:TransactionId>
<d2p1:TransactionsTypeNumber>0</d2p1:TransactionsTypeNumber>
<d2p1:VersionNumber>0</d2p1:VersionNumber>
<d2p1:CohabitantSocialSecurityNumber>String</d2p1:CohabitantSocialSecurityNumber>
<d2p1:CustomerRemark>AA==</d2p1:CustomerRemark>
<d2p1:PensionProviderId>0</d2p1:PensionProviderId>
<d2p1:SocialSecurityNumber>String</d2p1:SocialSecurityNumber>
<d2p1:SystemInfo>String</d2p1:SystemInfo>
</Header>
<Pdf xmlns:d2p1="http://schemas.datacontract.org/2004/07/AlbaMfs.Common.PensionsInfo">
<d2p1:PdfReport>AA==</d2p1:PdfReport>
</Pdf>
<PensionProviders xmlns:d2p1="http://schemas.datacontract.org/2004/07/AlbaMfs.Common.PensionsInfo">
<d2p1:PensionProviderVer9DTO>
<d2p1:AdvisorName>String</d2p1:AdvisorName>
<d2p1:CurrencyCode>String</d2p1:CurrencyCode>
<d2p1:PensionProviderId>0</d2p1:PensionProviderId>
<d2p1:PensionProviderName>String</d2p1:PensionProviderName>
<d2p1:ReceiveDataForAdvisory>false</d2p1:ReceiveDataForAdvisory>
<d2p1:Schemes i:nil="true" />
<d2p1:TransactionRemarks i:nil="true" />
<d2p1:TransactionStatus>0</d2p1:TransactionStatus>
<d2p1:WebSiteUrl>String</d2p1:WebSiteUrl>
<d2p1:WordSplitCharacter>0</d2p1:WordSplitCharacter>
</d2p1:PensionProviderVer9DTO>
</PensionProviders>
</PensionsInfoExtReq>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <SendPensionPlanToProviderResponseVer9DTO xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/AlbaMfs.Common.PensionsInfo"> <Header> <EventTime xmlns:d3p1="http://schemas.datacontract.org/2004/07/System"> <d3p1:DateTime>0001-01-01T00:00:00Z</d3p1:DateTime> <d3p1:OffsetMinutes>0</d3p1:OffsetMinutes> </EventTime> <TransactionId>String</TransactionId> <TransactionsTypeNumber>0</TransactionsTypeNumber> <VersionNumber>0</VersionNumber> <ErrorText>String</ErrorText> <ProviderRemark>AA==</ProviderRemark> <ReportReceived>false</ReportReceived> <SocialSecurityNumber>String</SocialSecurityNumber> </Header> </SendPensionPlanToProviderResponseVer9DTO>