38 lines
3.4 KiB
Python
38 lines
3.4 KiB
Python
from marshmallow import Schema, fields, validate
|
||
|
||
# Schema for the fees details object
|
||
class FeesDetailsSchema(Schema):
|
||
collectAmountInterest = fields.Float(required=True, description="Interest Amount to be collected immediately after loan is provided (Only for 30 days)")
|
||
collectAmountMgtFee = fields.Float(required=True, description="Management Fee Amount to be collected immediately after loan is provided")
|
||
collectAmountInsurance = fields.Float(required=True, description="Insurance Amount to be collected immediately after loan is provided")
|
||
collectAmountVAT = fields.Float(required=True, description="VAT Amount to be collected immediately after loan is provided")
|
||
|
||
# Disbursement Request Schema
|
||
class DisbursementSchema(Schema):
|
||
requestId = fields.Str(required=True, description="Unique identifier of request")
|
||
countryCode = fields.Str(required=True, description="Unique country code. Please refer to Country Codes table")
|
||
transactionId = fields.Str(required=True, description="Unique identifier of transaction in Simbrella system")
|
||
debtId = fields.Str(required=True, description="Unique identifier of a loan in Simbrella system that is going to be collected (it correlates with provision request)")
|
||
customerId = fields.Str(required=True, description="Unique identifier of a user")
|
||
accountId = fields.Str(required=True, description="Specific identifier of a user's account")
|
||
productId = fields.Str(required=True, description="Identifier of a product to be provided to a user")
|
||
provideAmount = fields.Float(required=True, description="Amount of loan (including service fee) to be provided on a specific account of a user")
|
||
totalFees = fields.Float(required=True, description="Total amount of all fees combined")
|
||
feesDetails = fields.Nested(FeesDetailsSchema, required=True, description="Detailed breakdown of all fees")
|
||
countryId = fields.Str(required=True, description="Set to static value '01'")
|
||
comment = fields.Str(required=False, description="Any additional comment for provided loan operation")
|
||
|
||
# Disbursement Response Schema
|
||
class DisbursementResponseSchema(Schema):
|
||
requestId = fields.Str(required=True, description="Unique identifier of request")
|
||
countryCode = fields.Str(required=True, description="Unique country code.")
|
||
transactionId = fields.Str(required=True, description="Unique ID of customer's USSD session. Must be consistent throughout whole USSD journey")
|
||
debtId = fields.Str(required=True, description="Unique identifier of a loan in Simbrella system that is going to be collected (it correlates with provision request)")
|
||
customerId = fields.Str(required=True, description="Unique identifier of a user")
|
||
accountId = fields.Str(required=True, description="Specific identifier of a user's account")
|
||
productId = fields.Str(required=True, description="Identifier of a product to be provided to a user")
|
||
provideAmount = fields.Float(required=True, description="Amount of loan (including service fee) to be provided on a specific account of a user")
|
||
totalFees = fields.Float(required=True, description="Total amount of all fees combined")
|
||
feesDetails = fields.Nested(FeesDetailsSchema, required=True, description="Detailed breakdown of all fees")
|
||
resultCode = fields.Str(required=True, description="Result code of executed transaction, e.g. (00 – Success etc.) see result codes table")
|
||
resultDescription = fields.Str(required=True, description="Description of provided result code") |