TicketUserServices

<back to all web services

RecurringPaymentCreateRequest

Requires Authentication
Requires any of the roles:Admin, TeamAdmin
The following routes are available for this service:
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 .csv suffix or ?format=csv

HTTP + CSV

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: text/csv
Content-Type: text/csv
Content-Length: length

{"phoneVerificationNumber":"String","token":"String","panLastFour":"String","expYear":"String","expMonth":"String","deviceId":"String","monthlyPrice":0,"subscriptionLength":0,"chargeFirstMonth":false,"ownerId":0,"ownerCardTypeId":0,"paymentTokenId":"String","transactionFee":0,"currency":"String","mode":"String","startDate":"0001-01-01T00:00:00.0000000","lastPayment":"0001-01-01T00:00:00.0000000","nextPayment":"0001-01-01T00:00:00.0000000","jsonResponse":"String","termsVersion":"String","termsAcceptedAt":"0001-01-01T00:00:00.0000000"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"item":{"id":0,"status":"String","phoneVerificationNumber":"String","deviceId":"String","panLastFour":"String","expYear":"String","expMonth":"String","token":"String","monthlyPrice":0,"subscriptionLength":0,"monthsPaid":0,"chargeFirstMonth":false,"ownerId":0,"ownerCardTypeId":0,"jsonResponse":"String","startDate":"0001-01-01T00:00:00.0000000","lastPayment":"0001-01-01T00:00:00.0000000","nextPayment":"0001-01-01T00:00:00.0000000","paymentTokenId":"String","declinedCounter":0,"transactionFee":0,"termsVersion":"String","termsAcceptedAt":"0001-01-01T00:00:00.0000000","currency":"String","mode":"String","lastDeclineReason":"String","lastDeclineDate":"0001-01-01T00:00:00.0000000","lastDunningStage":0,"lastDunningNotifiedAt":"0001-01-01T00:00:00.0000000"},"alreadyExisted":false,"statusCode":0,"message":"String"}