| GET | /signup/api/nat/{natID}/recurring/obligation/info | ||
|---|---|---|---|
| GET | /signup/api/nat/{natID}/group/{groupId}/recurring/obligation/info | ||
| GET | /signup/api/nat/{natID}/group/{groupId}/{usertype}/user/{userid}/recurring/obligation/info |
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 ContextualHelpDto:
control_name: Optional[str] = None
label_text: Optional[str] = None
is_visible: Optional[bool] = None
is_required: Optional[bool] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CountryDto:
country_i_d: Optional[int] = None
full_name: Optional[str] = None
abbr: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StateDto:
state_i_d: Optional[int] = None
country_i_d: Optional[int] = None
full_name: Optional[str] = None
abbr: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ChapterDto:
chap_id: Optional[int] = None
college: Optional[str] = None
designation: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RecurringInvoiceModel:
chap_i_d: Optional[int] = None
client_group_i_d: Optional[str] = None
recurring_invoice_i_d: Optional[int] = None
mem_type_i_d: Optional[int] = None
billing_type_name: Optional[str] = None
invoice_description: Optional[str] = None
amount: Optional[Decimal] = None
processing_currency: Optional[str] = None
frequency_description: Optional[str] = None
effective_date: Optional[datetime.datetime] = None
end_date: Optional[datetime.datetime] = None
next_due_date: Optional[datetime.datetime] = None
donation_coa_num: Optional[str] = None
donation_coa_desc: Optional[str] = None
donation__chap_bill_cat_i_d: Optional[int] = None
frequency_i_d: Optional[int] = None
monthly__day_of_m_onth: Optional[int] = None
weekly__day_of_week: Optional[int] = None
semi_monthly__day_of_month1: Optional[int] = None
semi_monthly__day_of_month2: Optional[int] = None
use_last_day_of_month: Optional[bool] = None
is_active: Optional[bool] = None
num_occurences: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FiscalYearItem:
year: Optional[int] = None
begin_date: Optional[datetime.datetime] = None
end_date: Optional[datetime.datetime] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RecurringObligationInvoiceTemplateItem:
recurring_obligation_template_item_id: Optional[int] = None
recurring_obligation_invoice_template_item_id: Optional[int] = None
recurring_obligation_invoice_template_id: Optional[int] = None
amount: Optional[Decimal] = None
chap_bill_cat_id: Optional[int] = None
name: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RecurringObligationInvoiceTemplate:
recurring_obligation_template_id: Optional[int] = None
recurring_obligation_invoice_template_id: Optional[int] = None
national_id: Optional[int] = None
member_type_client_id: Optional[int] = None
fiscal_year: Optional[FiscalYearItem] = None
chap_id: Optional[int] = None
is_deleted: Optional[bool] = None
name: Optional[str] = None
recurring_obligation_invoice_template_items: Optional[List[RecurringObligationInvoiceTemplateItem]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RecurringObligationChapBillCatDetail:
chap_bill_cat_id: Optional[int] = None
chap_bill_cat_desc: Optional[str] = None
nat_id: Optional[int] = None
is_contribution: Optional[bool] = None
calc_type_id: Optional[int] = None
donation_amounts: Optional[List[KeyValuePair[int, str]]] = None
chart_of_account_ref_id: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RecurringObligationFormInfo:
contextual_help: Optional[List[ContextualHelpDto]] = None
countries: Optional[List[CountryDto]] = None
states: Optional[List[StateDto]] = None
chapters: Optional[List[ChapterDto]] = None
recurring_invoices: Optional[List[RecurringInvoiceModel]] = None
recurring_obligation_templates: Optional[List[RecurringObligationInvoiceTemplate]] = None
recurring_obligation_chap_bill_cat_detail: Optional[List[RecurringObligationChapBillCatDetail]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Link:
rel: Optional[str] = None
url: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RecurringObligationFormInfoGetRs:
recurring_obligation_form_info: Optional[RecurringObligationFormInfo] = None
links: Optional[List[Link]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RecurringObligationFormInfoGetRq:
nat_i_d: Optional[int] = None
group_id: Optional[int] = None
user_id: Optional[str] = None
user_type: Optional[str] = None
Python RecurringObligationFormInfoGetRq 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.
GET /signup/api/nat/{natID}/recurring/obligation/info HTTP/1.1
Host: devapi.billhighway.com
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
RecurringObligationFormInfo:
{
ContextualHelp:
[
{
ControlName: String,
LabelText: String,
IsVisible: False,
IsRequired: False
}
],
Countries:
[
{
CountryID: 0,
FullName: String,
Abbr: String
}
],
States:
[
{
StateID: 0,
CountryID: 0,
FullName: String,
Abbr: String
}
],
Chapters:
[
{
ChapId: 0,
College: String,
Designation: String
}
],
RecurringInvoices:
[
{
ChapID: 0,
ClientGroupID: String,
RecurringInvoiceID: 0,
MemTypeID: 0,
BillingTypeName: String,
InvoiceDescription: String,
Amount: 0,
ProcessingCurrency: String,
FrequencyDescription: String,
EffectiveDate: 0001-01-01,
EndDate: 0001-01-01,
NextDueDate: 0001-01-01,
donationCoaNum: String,
donationCoaDesc: String,
Donation_ChapBillCatID: 0,
FrequencyID: 0,
Monthly_DayOfMOnth: 0,
Weekly_DayOfWeek: 0,
SemiMonthly_DayOfMonth1: 0,
SemiMonthly_DayOfMonth2: 0,
UseLastDayOfMonth: False,
IsActive: False,
NumOccurences: 0
}
],
RecurringObligationTemplates:
[
{
RecurringObligationTemplateId: 0,
RecurringObligationInvoiceTemplateId: 0,
NationalId: 0,
MemberTypeClientId: 0,
FiscalYear:
{
Year: 0,
BeginDate: 0001-01-01,
EndDate: 0001-01-01
},
ChapId: 0,
IsDeleted: False,
Name: String,
RecurringObligationInvoiceTemplateItems:
[
{
RecurringObligationTemplateItemId: 0,
RecurringObligationInvoiceTemplateItemId: 0,
RecurringObligationInvoiceTemplateId: 0,
Amount: 0,
ChapBillCatId: 0,
Name: String
}
]
}
],
RecurringObligationChapBillCatDetail:
[
{
ChapBillCatId: 0,
ChapBillCatDesc: String,
NatId: 0,
IsContribution: False,
CalcTypeId: 0,
DonationAmounts:
[
{
Key: 0,
Value: String
}
],
ChartOfAccountRefId: String
}
]
},
Links:
[
{
Rel: String,
Url: String
}
]
}