Files
2025-03-26 15:05:52 +01:00

38 lines
3.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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")