| Requires any of the roles: | Admin, TeamAdmin |
| POST | /recurringPayments |
|---|
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 RecurringPayment:
id: Optional[int] = None
status: Optional[str] = None
phone_verification_number: Optional[str] = None
device_id: Optional[str] = None
pan_last_four: Optional[str] = None
exp_year: Optional[str] = None
exp_month: Optional[str] = None
token: Optional[str] = None
monthly_price: Optional[int] = None
subscription_length: Optional[int] = None
months_paid: Optional[int] = None
charge_first_month: Optional[bool] = None
# @References(typeof(EventOwner))
owner_id: Optional[int] = None
owner_card_type_id: Optional[int] = None
# @StringLength(2147483647)
json_response: Optional[str] = None
start_date: Optional[datetime.datetime] = None
last_payment: Optional[datetime.datetime] = None
next_payment: Optional[datetime.datetime] = None
payment_token_id: Optional[str] = None
declined_counter: Optional[int] = None
transaction_fee: Optional[Decimal] = None
terms_version: Optional[str] = None
terms_accepted_at: Optional[datetime.datetime] = None
currency: Optional[str] = None
mode: Optional[str] = None
last_decline_reason: Optional[str] = None
last_decline_date: Optional[datetime.datetime] = None
last_dunning_stage: Optional[int] = None
last_dunning_notified_at: Optional[datetime.datetime] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RecurringPaymentGetResult:
item: Optional[RecurringPayment] = None
already_existed: Optional[bool] = None
status_code: Optional[int] = None
message: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RecurringPaymentCreateRequest:
phone_verification_number: Optional[str] = None
token: Optional[str] = None
pan_last_four: Optional[str] = None
exp_year: Optional[str] = None
exp_month: Optional[str] = None
device_id: Optional[str] = None
monthly_price: Optional[int] = None
subscription_length: Optional[int] = None
charge_first_month: Optional[bool] = None
owner_id: Optional[int] = None
owner_card_type_id: Optional[int] = None
payment_token_id: Optional[str] = None
transaction_fee: Optional[Decimal] = None
currency: Optional[str] = None
mode: Optional[str] = None
start_date: Optional[datetime.datetime] = None
last_payment: Optional[datetime.datetime] = None
next_payment: Optional[datetime.datetime] = None
json_response: Optional[str] = None
terms_version: Optional[str] = None
terms_accepted_at: Optional[datetime.datetime] = None
Python RecurringPaymentCreateRequest 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 /recurringPayments HTTP/1.1
Host: stubbur-app.azurewebsites.net
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<RecurringPaymentCreateRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel">
<ChargeFirstMonth>false</ChargeFirstMonth>
<Currency>String</Currency>
<DeviceId>String</DeviceId>
<ExpMonth>String</ExpMonth>
<ExpYear>String</ExpYear>
<JsonResponse>String</JsonResponse>
<LastPayment>0001-01-01T00:00:00</LastPayment>
<Mode>String</Mode>
<MonthlyPrice>0</MonthlyPrice>
<NextPayment>0001-01-01T00:00:00</NextPayment>
<OwnerCardTypeId>0</OwnerCardTypeId>
<OwnerId>0</OwnerId>
<PanLastFour>String</PanLastFour>
<PaymentTokenId>String</PaymentTokenId>
<PhoneVerificationNumber>String</PhoneVerificationNumber>
<StartDate>0001-01-01T00:00:00</StartDate>
<SubscriptionLength>0</SubscriptionLength>
<TermsAcceptedAt>0001-01-01T00:00:00</TermsAcceptedAt>
<TermsVersion>String</TermsVersion>
<Token>String</Token>
<TransactionFee>0</TransactionFee>
</RecurringPaymentCreateRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<RecurringPaymentGetResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel">
<AlreadyExisted>false</AlreadyExisted>
<Item xmlns:d2p1="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel.Types.Payouts">
<d2p1:ChargeFirstMonth>false</d2p1:ChargeFirstMonth>
<d2p1:Currency>String</d2p1:Currency>
<d2p1:DeclinedCounter>0</d2p1:DeclinedCounter>
<d2p1:DeviceId>String</d2p1:DeviceId>
<d2p1:ExpMonth>String</d2p1:ExpMonth>
<d2p1:ExpYear>String</d2p1:ExpYear>
<d2p1:Id>0</d2p1:Id>
<d2p1:JsonResponse>String</d2p1:JsonResponse>
<d2p1:LastDeclineDate>0001-01-01T00:00:00</d2p1:LastDeclineDate>
<d2p1:LastDeclineReason>String</d2p1:LastDeclineReason>
<d2p1:LastDunningNotifiedAt>0001-01-01T00:00:00</d2p1:LastDunningNotifiedAt>
<d2p1:LastDunningStage>0</d2p1:LastDunningStage>
<d2p1:LastPayment>0001-01-01T00:00:00</d2p1:LastPayment>
<d2p1:Mode>String</d2p1:Mode>
<d2p1:MonthlyPrice>0</d2p1:MonthlyPrice>
<d2p1:MonthsPaid>0</d2p1:MonthsPaid>
<d2p1:NextPayment>0001-01-01T00:00:00</d2p1:NextPayment>
<d2p1:OwnerCardTypeId>0</d2p1:OwnerCardTypeId>
<d2p1:OwnerId>0</d2p1:OwnerId>
<d2p1:PanLastFour>String</d2p1:PanLastFour>
<d2p1:PaymentTokenId>String</d2p1:PaymentTokenId>
<d2p1:PhoneVerificationNumber>String</d2p1:PhoneVerificationNumber>
<d2p1:StartDate>0001-01-01T00:00:00</d2p1:StartDate>
<d2p1:Status>String</d2p1:Status>
<d2p1:SubscriptionLength>0</d2p1:SubscriptionLength>
<d2p1:TermsAcceptedAt>0001-01-01T00:00:00</d2p1:TermsAcceptedAt>
<d2p1:TermsVersion>String</d2p1:TermsVersion>
<d2p1:Token>String</d2p1:Token>
<d2p1:TransactionFee>0</d2p1:TransactionFee>
</Item>
<Message>String</Message>
<StatusCode>0</StatusCode>
</RecurringPaymentGetResult>