first commit
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
from marshmallow import Schema, fields
|
||||
from .sms import SMSSchema
|
||||
|
||||
# Bulk SMS Schema
|
||||
class BulkSMSSchema(Schema):
|
||||
requests = fields.List(fields.Nested(SMSSchema), required=True)
|
||||
@@ -0,0 +1,16 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Collect Loan Schema
|
||||
class CollectLoanSchema(Schema):
|
||||
transactionId = fields.Str(required=True)
|
||||
fbnTransactionId = fields.Str(required=True)
|
||||
debtId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
productId = fields.Str(required=True)
|
||||
collectAmount = fields.Float(required=True)
|
||||
penalCharge = fields.Float(required=False) # Optional
|
||||
collectionMethod = fields.Int(required=True)
|
||||
lienAmount = fields.Float(required=True)
|
||||
countryId = fields.Str(required=True)
|
||||
comment = fields.Str(required=False) # Optional
|
||||
@@ -0,0 +1,11 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Customer Consent Schema
|
||||
class CustomerConsentSchema(Schema):
|
||||
type = fields.Str(required=True)
|
||||
transactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
requestTime = fields.DateTime(required=True, format="%Y-%m-%d %H:%M:%S.%f")
|
||||
consentType = fields.Str(required=True)
|
||||
channel = fields.Str(required=True)
|
||||
@@ -0,0 +1,17 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Disbursement Schema
|
||||
class DisbursementSchema(Schema):
|
||||
requestId = fields.Str(required=True, data_key="requestId")
|
||||
debtId = fields.Str(required=True, data_key="debtId")
|
||||
transactionId = fields.Str(required=True, data_key="transactionId")
|
||||
customerId = fields.Str(required=True, data_key="customerId")
|
||||
accountId = fields.Str(required=True, data_key="accountId")
|
||||
productId = fields.Str(required=True, data_key="productId")
|
||||
provideAmount = fields.Float(required=True, data_key="provideAmount")
|
||||
collectAmountInterest = fields.Float(required=False, data_key="collectAmountInterest") # Optional
|
||||
collectAmountMgtFee = fields.Float(required=True, data_key="collectAmountMgtFee")
|
||||
collectAmountInsurance = fields.Float(required=True, data_key="collectAmountInsurance")
|
||||
collectAmountVAT = fields.Float(required=True, data_key="collectAmountVAT")
|
||||
countryId = fields.Str(required=True, data_key="countryId")
|
||||
comment = fields.Str(required=False, data_key="comment") # Optional
|
||||
@@ -0,0 +1,11 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
class EligibilityCheckSchema(Schema):
|
||||
type = fields.Str(required=True, description="Request type")
|
||||
transactionId = fields.Str(data_key="transactionId", required=True, description="Transaction ID")
|
||||
countryCode = fields.Str(data_key="countryCode", required=True, description="Country code (ISO)")
|
||||
customerId = fields.Str(data_key="customerId", required=True, description="Customer ID")
|
||||
accountId = fields.Str(data_key="accountId", required=True, description="Account ID")
|
||||
msisdn = fields.Str(required=True, description="Mobile number")
|
||||
lienAmount = fields.Float(required=True, description="Amount for lien")
|
||||
channel = fields.Str(required=True, description="Transaction channel (USSD, Mobile, Web)")
|
||||
@@ -0,0 +1,8 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Lien Check Schema
|
||||
class LienCheckSchema(Schema):
|
||||
transactionId = fields.Str(required=True, metadata={"description": "Unique Identifier in Simbrella system"})
|
||||
customerId = fields.Str(required=True, metadata={"description": "Unique identifier of customer"})
|
||||
accountId = fields.Str(required=True, metadata={"description": "Unique identifier of account"})
|
||||
countryId = fields.Str(required=True, metadata={"description": 'Set to static value "01"'})
|
||||
@@ -0,0 +1,5 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Loan Information Schema
|
||||
class LoanInformationSchema(Schema):
|
||||
loan_id = fields.Str(required=True)
|
||||
@@ -0,0 +1,12 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# New Transaction Check Schema
|
||||
class NewTransactionCheckSchema(Schema):
|
||||
transactionId = fields.Str(required=True)
|
||||
debtId = fields.Str(required=True)
|
||||
transactionType = fields.Str(required=True, metadata={
|
||||
"allowed_values": ["Disbursement", "Collection", "PenalCharge"]
|
||||
})
|
||||
fbnTransactionId = fields.Str(required=True)
|
||||
origTransactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
@@ -0,0 +1,14 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Notification Callback Schema
|
||||
class NotificationCallbackSchema(Schema):
|
||||
fbnTransactionId = fields.Str(required=True)
|
||||
transactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
debtId = fields.Str(required=True)
|
||||
transactionType = fields.Str(required=True)
|
||||
amountProvided = fields.Float(required=True)
|
||||
amountCollected = fields.Float(required=True)
|
||||
responseCode = fields.Str(required=True)
|
||||
responseDescription = fields.Str(required=True)
|
||||
@@ -0,0 +1,14 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
|
||||
# Penal Charge Schema
|
||||
class PenalChargeSchema(Schema):
|
||||
transactionId = fields.Str(required=True, metadata={"description": "Unique identifier of transaction in Simbrella system"})
|
||||
fbnTransactionId = fields.Str(required=True, metadata={"description": "Unique id of the transaction received from FBN in Eligibility or Provision requests"})
|
||||
debtId = fields.Str(required=True, metadata={"description": "Unique identifier of providing loan in Simbrella system"})
|
||||
customerId = fields.Str(required=True, metadata={"description": "Unique identifier of a user"})
|
||||
accountId = fields.Str(required=True, metadata={"description": "Specific identifier of a user’s account"})
|
||||
penalCharge = fields.Decimal(required=True, metadata={"description": "Penalty amount that needs to be collected from user’s account"})
|
||||
lienAmount = fields.Decimal(required=True, metadata={"description": "Aggregated (summed up) lien amount"})
|
||||
countryId = fields.Str(required=True, metadata={"description": 'Set to static value "01"'})
|
||||
comment = fields.Str(required=False, metadata={"description": "Any additional comment for provided loan operation"})
|
||||
@@ -0,0 +1,16 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Provide Loan Schema
|
||||
class ProvideLoanSchema(Schema):
|
||||
type = fields.Str(required=True)
|
||||
requestId = fields.Str(required=True)
|
||||
transactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
msisdn = fields.Str(required=False)
|
||||
productId = fields.Str(required=True)
|
||||
lienAmount = fields.Float(required=True)
|
||||
requestedAmount = fields.Float(required=True)
|
||||
collectionType = fields.Int(required=True)
|
||||
loanType = fields.Int(required=True)
|
||||
channel = fields.Str(required=True)
|
||||
@@ -0,0 +1,23 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
class RACItemSchema(Schema):
|
||||
salaryAccount = fields.Bool(required=True)
|
||||
bvn = fields.Str(required=True)
|
||||
crc = fields.Bool(required=True)
|
||||
crms = fields.Bool(required=True)
|
||||
accountStatus = fields.Str(required=True)
|
||||
lien = fields.Bool(required=True)
|
||||
noBouncedCheck = fields.Bool(required=True)
|
||||
existingLoan = fields.Bool(required=True)
|
||||
whitelist = fields.Bool(required=True)
|
||||
noPastDueSalaryLoan = fields.Bool(required=True)
|
||||
noPastDueOtherLoans = fields.Bool(required=True)
|
||||
|
||||
|
||||
# RAC Check Schema
|
||||
class RACCheckSchema(Schema):
|
||||
transactionId = fields.Str(required=True)
|
||||
fbnTransactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
RAC_Array = fields.List(fields.Nested(RACItemSchema), required=True)
|
||||
@@ -0,0 +1,11 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Repayment Schema
|
||||
class RepaymentSchema(Schema):
|
||||
type = fields.Str(required=True)
|
||||
msisdn = fields.Str(required=False) #optional
|
||||
debtId = fields.Str(required=True)
|
||||
productId = fields.Str(required=True)
|
||||
transactionId = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
channel = fields.Str(required=True)
|
||||
@@ -0,0 +1,13 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
|
||||
# Revoke Enable Consent Schema
|
||||
class RevokeEnableConsentSchema(Schema):
|
||||
transactionId = fields.Str(required=True, metadata={"description": "Unique identifier of transaction in Simbrella system"})
|
||||
fbnTransactionId = fields.Str(required=True, metadata={"description": "Unique id of the transaction received from FBN in CustomerConsentRequest"})
|
||||
customerId = fields.Str(required=True, metadata={"description": "Unique identifier of a user"})
|
||||
accountId = fields.Str(required=True, metadata={"description": "Specific identifier of a user’s account"})
|
||||
processTime = fields.DateTime(required=True, metadata={"description": "Date and time when consent request was processed"})
|
||||
consentType = fields.Str(required=True, metadata={"description": '“Enable” or “Revoke”'})
|
||||
countryId = fields.Str(required=True, metadata={"description": 'Set to static value "01"'})
|
||||
comment = fields.Str(required=False, metadata={"description": "Any additional comment for consent operation"})
|
||||
@@ -0,0 +1,13 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Select Offer Schema
|
||||
class SelectOfferSchema(Schema):
|
||||
requestId = fields.Str(required=True, description="Unique request identifier")
|
||||
transactionId = fields.Str(required=True, description="Transaction ID")
|
||||
customerId = fields.Str(required=True, description="Customer ID")
|
||||
accountId = fields.Str(required=True, description="Account ID")
|
||||
msisdn = fields.Str(required=True, description="Mobile number")
|
||||
requestedAmount = fields.Float(required=True, description="Amount requested")
|
||||
productId = fields.Str(required=True, description="Product ID")
|
||||
channel = fields.Str(required=True, description="Transaction channel (e.g., USSD)")
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# SMS Schema
|
||||
class SMSSchema(Schema):
|
||||
text = fields.Str(required=True)
|
||||
dest = fields.Str(required=True)
|
||||
unicode = fields.Bool(required=True)
|
||||
@@ -0,0 +1,8 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
# Token Validation Schema
|
||||
class TokenValidationSchema(Schema):
|
||||
RequestId = fields.Str(required=True)
|
||||
UserId = fields.Str(required=True)
|
||||
CountryId = fields.Str(required=True)
|
||||
TokenCode = fields.Str(required=True)
|
||||
@@ -0,0 +1,12 @@
|
||||
from marshmallow import Schema, fields
|
||||
|
||||
|
||||
# Transaction Verify Schema
|
||||
class TransactionVerifySchema(Schema):
|
||||
counter = fields.Str(required=True)
|
||||
TransactionId = fields.Str(required=True)
|
||||
requestID = fields.Str(required=True)
|
||||
customerId = fields.Str(required=True)
|
||||
accountId = fields.Str(required=True)
|
||||
countryId = fields.Str(required=True) # Static value “01”
|
||||
transactionType = fields.Str(required=True)
|
||||
Reference in New Issue
Block a user