AlbaApi

<back to all web services

PowensConnectionSyncRequest

The following routes are available for this service:
POST/ext/powens/connection_synced
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 Stability:
    status: Optional[str] = None
    last_update: Optional[datetime.datetime] = None


class AuthMechanism(IntEnum):
    CREDENTIALS = 'credentials'
    WEB_AUTH = 'webauth'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ConnectorReq:
    id: Optional[int] = None
    name: Optional[str] = None
    hidden: Optional[bool] = None
    charged: Optional[bool] = None
    code: Optional[str] = None
    beta: Optional[bool] = None
    color: Optional[str] = None
    slug: Optional[str] = None
    sync_periodicity: Optional[Decimal] = None
    months_to_fetch: Optional[int] = None
    siret: Optional[str] = None
    uuid: Optional[str] = None
    restricted: Optional[bool] = None
    stability: Optional[Stability] = None
    capabilities: Optional[List[str]] = None
    available_auth_mechanisms: Optional[List[AuthMechanism]] = None
    categories: Optional[List[str]] = None
    auth_mechanism: Optional[AuthMechanism] = None
    account_types: Optional[List[Object]] = None
    account_usages: Optional[List[Object]] = None
    documents_type: Optional[List[str]] = None
    products: Optional[List[Object]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ConnectionRequest:
    id: Optional[int] = None
    id_user: Optional[int] = None
    id_connector: Optional[int] = None
    last_update: Optional[datetime.datetime] = None
    created: Optional[datetime.datetime] = None
    active: Optional[bool] = None
    last_push: Optional[datetime.datetime] = None
    next_try: Optional[datetime.datetime] = None
    connector: Optional[ConnectorReq] = None
    accounts: Optional[List[PowensAccount]] = None
    state: Optional[str] = None
    error: Optional[str] = None
    error_message: Optional[str] = None
    expire: Optional[datetime.datetime] = None
    id_provider: Optional[int] = None
    id_bank: Optional[int] = None
    bank: Optional[ConnectorReq] = None
    connector_uuid: Optional[str] = None
    informations: Optional[Object] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PowensConnectionSyncRequest:
    connection: Optional[ConnectionRequest] = None
    push_type: Optional[str] = None
    id_webhook_data: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PowensCurrency:
    id: Optional[str] = None
    name: Optional[str] = None
    symbol: Optional[str] = None
    crypto: Optional[bool] = None
    precision: Optional[int] = None
    prefix: Optional[bool] = None
    marketcap: Optional[Object] = None
    datetime: Optional[datetime.datetime] = None


class AccountUsage(IntEnum):
    PRIV = 1
    ORGA = 2


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PowensInformation:
    version: Optional[str] = None
    provider_type: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PowensLoan:
    total_amount: Optional[Decimal] = None
    available_amount: Optional[Decimal] = None
    used_amount: Optional[Decimal] = None
    subscription_date: Optional[datetime.datetime] = None
    maturity_date: Optional[datetime.datetime] = None
    next_payment_amount: Optional[Decimal] = None
    next_payment_date: Optional[datetime.datetime] = None
    rate: Optional[Decimal] = None
    nb_payments_left: Optional[int] = None
    nb_payments_done: Optional[int] = None
    nb_payments_total: Optional[int] = None
    last_payment_amount: Optional[Decimal] = None
    last_payment_date: Optional[datetime.datetime] = None
    account_label: Optional[str] = None
    insurance_label: Optional[str] = None
    insurance_amount: Optional[Decimal] = None
    insurance_rate: Optional[Decimal] = None
    duration: Optional[int] = None
    type: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PowensAccount:
    investments: Optional[List[PowensInvestment]] = None
    id: Optional[int] = None
    id_connection: Optional[int] = None
    id_user: Optional[int] = None
    id_source: Optional[int] = None
    id_parent: Optional[int] = None
    number: Optional[str] = None
    web_id: Optional[str] = None
    original_name: Optional[str] = None
    balance: Optional[Decimal] = None
    coming: Optional[Decimal] = None
    display: Optional[bool] = None
    last_update: Optional[datetime.datetime] = None
    deleted: Optional[datetime.datetime] = None
    disabled: Optional[datetime.datetime] = None
    iban: Optional[str] = None
    currency: Optional[PowensCurrency] = None
    id_type: Optional[int] = None
    bookmarked: Optional[int] = None
    name: Optional[str] = None
    error: Optional[str] = None
    usage: Optional[AccountUsage] = None
    company_name: Optional[str] = None
    opening_date: Optional[datetime.datetime] = None
    bic: Optional[Object] = None
    coming_balances: Optional[int] = None
    formatted_balance: Optional[str] = None
    type: Optional[str] = None
    calculated: Optional[List[str]] = None
    valuation: Optional[float] = None
    diff: Optional[float] = None
    diff_percent: Optional[float] = None
    prev_diff: Optional[float] = None
    prev_diff_percent: Optional[float] = None
    information: Optional[PowensInformation] = None
    loan: Optional[PowensLoan] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Currency:
    id: Optional[str] = None
    name: Optional[str] = None
    symbol: Optional[str] = None
    crypto: Optional[bool] = None
    precision: Optional[int] = None
    prefix: Optional[bool] = None
    marketcap: Optional[Object] = None
    datetime: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PowensInvestment:
    id: Optional[int] = None
    id_account: Optional[int] = None
    label: Optional[str] = None
    code: Optional[str] = None
    code_type: Optional[str] = None
    stock_symbol: Optional[str] = None
    stock_market: Optional[Object] = None
    source: Optional[str] = None
    description: Optional[str] = None
    quantity: Optional[Decimal] = None
    unit_price: Optional[Decimal] = None
    unit_value: Optional[Decimal] = None
    valuation: Optional[Decimal] = None
    diff: Optional[Decimal] = None
    diff_percent: Optional[Decimal] = None
    prev_diff: Optional[Decimal] = None
    portfolio_share: Optional[Decimal] = None
    v_date: Optional[datetime.datetime] = None
    prev_v_date: Optional[datetime.datetime] = None
    id_security: Optional[int] = None
    original_currency: Optional[Currency] = None
    original_valuation: Optional[Decimal] = None
    original_unit_value: Optional[Decimal] = None
    original_unit_price: Optional[Decimal] = None
    original_diff: Optional[Decimal] = None
    last_update: Optional[datetime.datetime] = None
    deleted: Optional[datetime.datetime] = None
    calculated: Optional[List[str]] = None
    id_type: Optional[int] = None

Python PowensConnectionSyncRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /ext/powens/connection_synced HTTP/1.1 
Host: hcbtas-q-albamfs-api.azurewebsites.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	connection: 
	{
		id: 0,
		id_user: 0,
		id_connector: 0,
		last_update: 0001-01-01,
		created: 0001-01-01,
		active: False,
		last_push: 0001-01-01,
		next_try: 0001-01-01,
		connector: 
		{
			id: 0,
			name: String,
			hidden: False,
			charged: False,
			code: String,
			beta: False,
			color: String,
			slug: String,
			sync_periodicity: 0,
			months_to_fetch: 0,
			siret: String,
			uuid: String,
			restricted: False,
			stability: 
			{
				status: String,
				lastUpdate: 0001-01-01
			},
			capabilities: 
			[
				String
			],
			available_auth_mechanisms: 
			[
				credentials
			],
			categories: 
			[
				String
			],
			auth_mechanism: credentials,
			account_types: 
			[
				{
					
				}
			],
			account_usage: 
			[
				{
					
				}
			],
			documents_type: 
			[
				String
			],
			products: 
			[
				{
					
				}
			]
		},
		accounts: 
		[
			{
				investments: 
				[
					{
						id: 0,
						id_account: 0,
						label: String,
						code: String,
						code_type: String,
						stock_symbol: String,
						stock_market: {},
						source: String,
						description: String,
						quantity: 0,
						unitprice: 0,
						unitvalue: 0,
						valuation: 0,
						diff: 0,
						diff_percent: 0,
						prev_diff: 0,
						portfolio_share: 0,
						vdate: 0001-01-01,
						prev_vdate: 0001-01-01,
						id_security: 0,
						original_currency: 
						{
							id: String,
							name: String,
							symbol: String,
							crypto: False,
							precision: 0,
							prefix: False,
							marketcap: {},
							datetime: 0001-01-01
						},
						original_valuation: 0,
						original_unitvalue: 0,
						original_unitprice: 0,
						original_diff: 0,
						last_update: 0001-01-01,
						deleted: 0001-01-01,
						calculated: 
						[
							String
						],
						id_type: 0
					}
				],
				id: 0,
				id_connection: 0,
				id_user: 0,
				id_source: 0,
				id_parent: 0,
				number: String,
				webid: String,
				original_name: String,
				balance: 0,
				coming: 0,
				display: False,
				last_update: 0001-01-01,
				deleted: 0001-01-01,
				disabled: 0001-01-01,
				iban: String,
				currency: 
				{
					id: String,
					name: String,
					symbol: String,
					crypto: False,
					precision: 0,
					prefix: False,
					marketcap: {},
					datetime: 0001-01-01
				},
				id_type: 0,
				bookmarked: 0,
				name: String,
				error: String,
				usage: 0,
				company_name: String,
				opening_date: 0001-01-01,
				bic: {},
				coming_balance: 0,
				formatted_balance: String,
				type: String,
				calculated: 
				[
					String
				],
				valuation: 0,
				diff: 0,
				diff_percent: 0,
				prev_diff: 0,
				prev_diff_percent: 0,
				information: 
				{
					version: String,
					provider_type: String
				},
				loan: 
				{
					total_amount: 0,
					available_amount: 0,
					used_amount: 0,
					subscription_date: 0001-01-01,
					maturity_date: 0001-01-01,
					next_payment_amount: 0,
					next_payment_date: 0001-01-01,
					rate: 0,
					nb_payments_left: 0,
					nb_payments_done: 0,
					nb_payments_total: 0,
					last_payment_amount: 0,
					last_payment_date: 0001-01-01,
					account_label: String,
					insurance_label: String,
					insurance_amount: 0,
					insurance_rate: 0,
					duration: 0,
					type: String
				}
			}
		],
		state: String,
		error: String,
		error_message: String,
		expire: 0001-01-01,
		id_provider: 0,
		id_bank: 0,
		bank: 
		{
			id: 0,
			name: String,
			hidden: False,
			charged: False,
			code: String,
			beta: False,
			color: String,
			slug: String,
			sync_periodicity: 0,
			months_to_fetch: 0,
			siret: String,
			uuid: String,
			restricted: False,
			stability: 
			{
				status: String,
				lastUpdate: 0001-01-01
			},
			capabilities: 
			[
				String
			],
			available_auth_mechanisms: 
			[
				credentials
			],
			categories: 
			[
				String
			],
			auth_mechanism: credentials,
			account_types: 
			[
				{
					
				}
			],
			account_usage: 
			[
				{
					
				}
			],
			documents_type: 
			[
				String
			],
			products: 
			[
				{
					
				}
			]
		},
		connector_uuid: String,
		informations: {}
	},
	push_type: String,
	id_webhook_data: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	version: 
	{
		major: 0,
		minor: 0,
		build: -1,
		revision: -1,
		majorRevision: -1,
		minorRevision: -1
	},
	content: 
	{
		__type: "System.Net.Http.EmptyContent, System.Net.Http",
		headers: []
	},
	statusCode: Continue,
	reasonPhrase: String,
	headers: [],
	trailingHeaders: [],
	requestMessage: 
	{
		version: 
		{
			major: 0,
			minor: 0,
			build: -1,
			revision: -1,
			majorRevision: -1,
			minorRevision: -1
		},
		versionPolicy: RequestVersionOrLower,
		method: 
		{
			method: GET
		},
		headers: [],
		properties: {},
		options: {}
	},
	isSuccessStatusCode: False
}