Billhighway Cloud API

<back to all web services

RecurringObligationTemplateGetRq

The following routes are available for this service:
GET/signup/api/nat/{natID}/recurring/obligation/templates
GET/signup/api/nat/{natID}/group/{groupId}/recurring/obligation/templates
GET/signup/api/nat/{natID}/group/{groupId}/{usertype}/user/{userid}/recurring/obligation/templates
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 RecurringObligationTemplateGetRq:
    nat_i_d: Optional[int] = None
    group_id: Optional[int] = None
    user_id: Optional[str] = None
    user_type: 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 RecurringObligationWrapper:
    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 RecurringObligationTemplateGetRs:
    recurring_obligations: Optional[RecurringObligationWrapper] = None

Python RecurringObligationTemplateGetRq 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.

GET /signup/api/nat/{natID}/recurring/obligation/templates HTTP/1.1 
Host: devapi.billhighway.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	RecurringObligations: 
	{
		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
			}
		]
	}
}