-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmpesa.schema.graphql
101 lines (85 loc) · 2.41 KB
/
mpesa.schema.graphql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
extend type DefaultResponse{
}
type MpesaRecentTransaction{
id:String
type: String
amount:String
date:String
partyBAccountNo:String
partyBName:String
reversible:String #boolean of string
shareable:String #boolean of string
narrative:String
}
type MledgerAccountStatus{
accountNo:String
activated:Boolean
receiveMonthlyStatement:Boolean
aggregatedCreditYears:[String]
aggregatedDebitYears:[String]
}
type MledgerPartySummary{
account:String
name:String
amount:String
}
type MledgerCategorySummary{
id:String
category:String
percentage:String
amount:String
parties:[MledgerPartySummary]
}
type MledgerSummary{
totalAmount:String
category:[MledgerCategorySummary]
}
type MledgerTransactionDetails{
id:String
type:String
amount:String
date:String
partyBAccountNo:String #e.g. 9 for Airtime
partyBName:String #e.g. 999999999 for Safaricom account
}
type MpesaCharges{
id:Int
minAmount:Int
maxAmount:Int
sendToRegistered:Int
sendToUnregistered:Int
agentWithdrawal:Int
atmWithdrawal:Int
sendToRegisteredOtherMno:Int
}
type MerchantDetails{
merchantCode:String
merchantName:String
transactionCost: String #includes word "ksh"
vicinityRcode: String
vicinityRmsg:String
}
input MledgerTransactionDetailsInput{
id:String!
type:String!
amount:String!
date:String!
partyBAccountNo:String!
partyBName:String!
}
extend type Query {
getMpesaAllCharges:[MpesaCharges]
getMpesaPaybillCharges(transactionType:String!,amount:String!,partyB:String!):MerchantDetails #Transaction Types: paybill or tillNumber
getMpesaStatementStatus:DefaultResponse
getRecentMpesaTransactions:[MpesaRecentTransaction]
#M-ledger
getMledgerStatus:MledgerAccountStatus
getMledgerDebitSummary(year:String!,month:String!):MledgerSummary #months start at 0
getMledgerDebits(year:String!,month:String!,partyBAccountNo:String!,category:String!):MledgerTransactionDetails
getSortedArrayofObjects(key:String!,order:String!,array:[MledgerTransactionDetailsInput]!):MledgerTransactionDetails
}
extend type Mutation{
MledgerOptIn:DefaultResponse
getMpesaStatements(period:Int!):DefaultResponse #period is number of months past today. Max 12
changeMpesaStatementsEmail(email:String!,identification:String!):DefaultResponse #identification = passport or ID
}