daraja-sdk
Version:
sdk for the developers integrating with safaricom's daraja api
152 lines (149 loc) • 3.34 kB
JavaScript
;
let utils=require('../../utils')
let BillManagerOptInSchema=exports.BillManagerOptInSchema={
shortcode:{
type:'number',
required:true,
custom:[utils.isBusinessShortCode]
},
email:{
type:'string',
required:true,
custom:[utils.isEmail]
},
officialContact:{
type:'string',
required:true,
custom:[utils.isPhoneNumber]
},
sendReminders:{
type:'string',
required:true,
allowed:["0","1"]
},
logo:{
type:'url',
required:true
//custom:[utils.isJpeg]
},
callbackUrl:{
type:'url',
required:true,
}
}
let BillManagerSingleInvoicingSchema=exports.BillManagerSingleInvoicingSchema={
externalReference:{
type:'string',
required:true,
},
billedFullName:{
type:'string',
required:true
},
billedPhoneNumber:{
type:'string',
required:true
},
billedPeriod:{
type:'string',
required:true,
custom:[utils.isMonthYear]
},
invoiceName:{
type:'string',
required:true
},
dueDate:{
type:'string',
required:true,
custom:[utils.isDatetime]
},
accountReference:{
type:'string',
required:true
},
amount:{
type:'number',
required:true,
custom:[utils.isNonNegativeOrZero]
},
invoiceItems:{
type:'array',
children:{
name:{
type:'string',
required:true
},
amount:{
type:'number',
required:true
}
}
}
}
let BillManagerReconsiliationSchema=exports.BillManagerReconsiliationSchema={
transactionId:{
type:'string',
required:true,
},
paidAmount:{
type:'number',
required:true,
custom:[utils.isNonNegativeOrZero]
},
msisdn:{
type:'number',
required:true,
custom:[utils.isMobileNumber]
},
dateCreated:{
type:'string',
required:true,
custom:[utils.isYearMonthDateHyphen]
},
accountReference:{
type:'string',
required:true
},
shortCode:{
type:'number',
required:true,
cutsom:[utils.isBusinessShortCode]
}
}
let BillManagerCancelSingleInvoiceSchema=exports.BillManagerCancelSingleInvoiceSchema={
externalReference:{
type:'string',
required:true
}
}
let BillManagerUpdateOptInSchema=exports.BillManagerUpdateOptInSchema={
shortcode:{
type:'number',
required:true,
custom:[utils.isBusinessShortCode]
},
email:{
type:'string',
required:true,
custom:[utils.isEmail]
},
officialContact:{
type:'string',
required:true,
custom:[utils.isPhoneNumber]
},
sendReminders:{
type:'string',
required:true,
allowed:['0','1']
},
logo:{
type:'url',
custom:[utils.isJpeg]
},
callbackUrl:{
type:'url',
required:true,
}
}