| GET, POST | /fibuscan/Onlinehandel/PayPalListe |
|---|
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 TransactionAmount:
currency_code: Optional[str] = None
value: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FeeAmount:
currency_code: Optional[str] = None
value: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class EndingBalance:
currency_code: Optional[str] = None
value: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AvailableBalance:
currency_code: Optional[str] = None
value: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TransactionInfo:
paypal_account_id: Optional[str] = None
transaction_id: Optional[str] = None
transaction_event_code: Optional[str] = None
transaction_initiation_date: datetime.datetime = datetime.datetime(1, 1, 1)
transaction_updated_date: datetime.datetime = datetime.datetime(1, 1, 1)
transaction_amount: Optional[TransactionAmount] = None
fee_amount: Optional[FeeAmount] = None
transaction_status: Optional[str] = None
transaction_subject: Optional[str] = None
ending_balance: Optional[EndingBalance] = None
available_balance: Optional[AvailableBalance] = None
invoice_id: Optional[str] = None
custom_field: Optional[str] = None
protection_eligibility: Optional[str] = None
paypal_reference_id: Optional[str] = None
paypal_reference_id_type: Optional[str] = None
bank_reference_id: Optional[str] = None
credit_term: Optional[str] = None
transaction_note: Optional[str] = None
payment_method_type: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PayerName:
given_name: Optional[str] = None
surname: Optional[str] = None
alternate_full_name: Optional[str] = None
middle_name: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PayerInfo:
account_id: Optional[str] = None
email_address: Optional[str] = None
address_status: Optional[str] = None
payer_status: Optional[str] = None
payer_name: Optional[PayerName] = None
country_code: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Address:
line1: Optional[str] = None
city: Optional[str] = None
country_code: Optional[str] = None
postal_code: Optional[str] = None
address_line_1: Optional[str] = None
admin_area_2: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ShippingInfo:
name: Optional[str] = None
address: Optional[Address] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ItemUnitPrice:
currency_code: Optional[str] = None
value: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ItemAmount:
currency_code: Optional[str] = None
value: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TotalItemAmount:
currency_code: Optional[str] = None
value: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BasicShippingAmount:
currency_code: Optional[str] = None
value: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ItemDetail:
item_code: Optional[str] = None
item_name: Optional[str] = None
item_description: Optional[str] = None
item_quantity: Optional[str] = None
item_unit_price: Optional[ItemUnitPrice] = None
item_amount: Optional[ItemAmount] = None
total_item_amount: Optional[TotalItemAmount] = None
basic_shipping_amount: Optional[BasicShippingAmount] = None
invoice_number: Optional[str] = None
tax_percentage: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CartInfo:
item_details: Optional[List[ItemDetail]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StoreInfo:
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AuctionInfo:
auction_site: Optional[str] = None
auction_item_site: Optional[str] = None
auction_buyer_id: Optional[str] = None
auction_closing_date: Optional[datetime.datetime] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class IncentiveInfo:
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TransactionDetail:
transaction_info: Optional[TransactionInfo] = None
payer_info: Optional[PayerInfo] = None
shipping_info: Optional[ShippingInfo] = None
cart_info: Optional[CartInfo] = None
store_info: Optional[StoreInfo] = None
auction_info: Optional[AuctionInfo] = None
incentive_info: Optional[IncentiveInfo] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PayPalListeListeResponse:
transaction_details: Optional[List[TransactionDetail]] = None
pay_pal_json: Optional[List[str]] = None
liste: Optional[List[List[OnlinehandelItem]]] = None
neue_datei_i_d: Optional[int] = None
class Oem(IntEnum):
FIBUDATA = 0
SPECTRUM = 3
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PayPalListeRequest:
oem: Optional[Oem] = None
von_datum: Optional[datetime.datetime] = None
bis_datum: Optional[datetime.datetime] = None
bank_i_d: Optional[int] = None
alle_neue_laden: bool = False
pay_pal_client_i_d: Optional[str] = None
pay_pal_secret: Optional[str] = None
pay_pal_waehrung: Optional[str] = None
onlinehande_datei_genieren: Optional[bool] = None
Python PayPalListeRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /fibuscan/Onlinehandel/PayPalListe HTTP/1.1
Host: ws4.fibudata.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
oem: fibudata,
VonDatum: 0001-01-01,
BisDatum: 0001-01-01,
BankID: 0,
AlleNeueLaden: False,
PayPalClientID: String,
PayPalSecret: String,
PayPalWaehrung: String,
OnlinehandeDateiGenieren: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
transaction_details:
[
{
transaction_info:
{
paypal_account_id: String,
transaction_id: String,
transaction_event_code: String,
transaction_initiation_date: 0001-01-01,
transaction_updated_date: 0001-01-01,
transaction_amount:
{
currency_code: String,
value: String
},
fee_amount:
{
currency_code: String,
value: String
},
transaction_status: String,
transaction_subject: String,
ending_balance:
{
currency_code: String,
value: String
},
available_balance:
{
currency_code: String,
value: String
},
invoice_id: String,
custom_field: String,
protection_eligibility: String,
paypal_reference_id: String,
paypal_reference_id_type: String,
bank_reference_id: String,
credit_term: String,
transaction_note: String,
payment_method_type: String
},
payer_info:
{
account_id: String,
email_address: String,
address_status: String,
payer_status: String,
payer_name:
{
given_name: String,
surname: String,
alternate_full_name: String,
middle_name: String
},
country_code: String
},
shipping_info:
{
name: String,
address:
{
line1: String,
city: String,
country_code: String,
postal_code: String,
address_line_1: String,
admin_area_2: String
}
},
cart_info:
{
item_details:
[
{
item_code: String,
item_name: String,
item_description: String,
item_quantity: String,
item_unit_price:
{
currency_code: String,
value: String
},
item_amount:
{
currency_code: String,
value: String
},
total_item_amount:
{
currency_code: String,
value: String
},
basic_shipping_amount:
{
currency_code: String,
value: String
},
invoice_number: String,
tax_percentage: String
}
]
},
store_info: {},
auction_info:
{
auction_site: String,
auction_item_site: String,
auction_buyer_id: String,
auction_closing_date: 0001-01-01
},
incentive_info: {}
}
],
PayPalJson:
[
String
],
Liste:
[
[
{
fehler: False,
original: String,
header: String,
col_nummer: 0,
konfiguration: OrderiD,
summenkonfiguration: False,
value: {},
datum: 0001-01-01,
zahl: 0,
datum_string: String,
zahl_string: String
}
]
],
NeueDateiID: 0
}