@monnify/mcp-server 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +563 -0
  3. package/build/auth/tokenManager.d.ts +11 -0
  4. package/build/auth/tokenManager.d.ts.map +1 -0
  5. package/build/auth/tokenManager.js +62 -0
  6. package/build/auth/tokenManager.js.map +1 -0
  7. package/build/cli.d.ts +3 -0
  8. package/build/cli.d.ts.map +1 -0
  9. package/build/cli.js +39 -0
  10. package/build/cli.js.map +1 -0
  11. package/build/client/monnifyClient.d.ts +7 -0
  12. package/build/client/monnifyClient.d.ts.map +1 -0
  13. package/build/client/monnifyClient.js +119 -0
  14. package/build/client/monnifyClient.js.map +1 -0
  15. package/build/config/env.d.ts +47 -0
  16. package/build/config/env.d.ts.map +1 -0
  17. package/build/config/env.js +39 -0
  18. package/build/config/env.js.map +1 -0
  19. package/build/index.d.ts +36 -0
  20. package/build/index.d.ts.map +1 -0
  21. package/build/index.js +84 -0
  22. package/build/index.js.map +1 -0
  23. package/build/schemas/compat.d.ts +24 -0
  24. package/build/schemas/compat.d.ts.map +1 -0
  25. package/build/schemas/compat.js +20 -0
  26. package/build/schemas/compat.js.map +1 -0
  27. package/build/schemas/extended/collections.d.ts +439 -0
  28. package/build/schemas/extended/collections.d.ts.map +1 -0
  29. package/build/schemas/extended/collections.js +403 -0
  30. package/build/schemas/extended/collections.js.map +1 -0
  31. package/build/schemas/extended/directDebit.d.ts +123 -0
  32. package/build/schemas/extended/directDebit.d.ts.map +1 -0
  33. package/build/schemas/extended/directDebit.js +121 -0
  34. package/build/schemas/extended/directDebit.js.map +1 -0
  35. package/build/schemas/extended/verification.d.ts +55 -0
  36. package/build/schemas/extended/verification.d.ts.map +1 -0
  37. package/build/schemas/extended/verification.js +51 -0
  38. package/build/schemas/extended/verification.js.map +1 -0
  39. package/build/schemas/generated.d.ts +4 -0
  40. package/build/schemas/generated.d.ts.map +1 -0
  41. package/build/schemas/generated.js +2603 -0
  42. package/build/schemas/generated.js.map +1 -0
  43. package/build/security/guards.d.ts +5 -0
  44. package/build/security/guards.d.ts.map +1 -0
  45. package/build/security/guards.js +43 -0
  46. package/build/security/guards.js.map +1 -0
  47. package/build/security/sanitiser.d.ts +46 -0
  48. package/build/security/sanitiser.d.ts.map +1 -0
  49. package/build/security/sanitiser.js +269 -0
  50. package/build/security/sanitiser.js.map +1 -0
  51. package/build/tools/collections/authoriseCard3ds.d.ts +7 -0
  52. package/build/tools/collections/authoriseCard3ds.d.ts.map +1 -0
  53. package/build/tools/collections/authoriseCard3ds.js +63 -0
  54. package/build/tools/collections/authoriseCard3ds.js.map +1 -0
  55. package/build/tools/collections/authoriseCardOtp.d.ts +7 -0
  56. package/build/tools/collections/authoriseCardOtp.d.ts.map +1 -0
  57. package/build/tools/collections/authoriseCardOtp.js +55 -0
  58. package/build/tools/collections/authoriseCardOtp.js.map +1 -0
  59. package/build/tools/collections/chargeCard.d.ts +7 -0
  60. package/build/tools/collections/chargeCard.d.ts.map +1 -0
  61. package/build/tools/collections/chargeCard.js +59 -0
  62. package/build/tools/collections/chargeCard.js.map +1 -0
  63. package/build/tools/collections/chargeCardToken.d.ts +7 -0
  64. package/build/tools/collections/chargeCardToken.d.ts.map +1 -0
  65. package/build/tools/collections/chargeCardToken.js +68 -0
  66. package/build/tools/collections/chargeCardToken.js.map +1 -0
  67. package/build/tools/collections/createInvoice.d.ts +7 -0
  68. package/build/tools/collections/createInvoice.d.ts.map +1 -0
  69. package/build/tools/collections/createInvoice.js +57 -0
  70. package/build/tools/collections/createInvoice.js.map +1 -0
  71. package/build/tools/collections/deallocateReservedAccount.d.ts +14 -0
  72. package/build/tools/collections/deallocateReservedAccount.d.ts.map +1 -0
  73. package/build/tools/collections/deallocateReservedAccount.js +55 -0
  74. package/build/tools/collections/deallocateReservedAccount.js.map +1 -0
  75. package/build/tools/collections/getAllTransactions.d.ts +47 -0
  76. package/build/tools/collections/getAllTransactions.d.ts.map +1 -0
  77. package/build/tools/collections/getAllTransactions.js +140 -0
  78. package/build/tools/collections/getAllTransactions.js.map +1 -0
  79. package/build/tools/collections/getReservedAccount.d.ts +14 -0
  80. package/build/tools/collections/getReservedAccount.d.ts.map +1 -0
  81. package/build/tools/collections/getReservedAccount.js +55 -0
  82. package/build/tools/collections/getReservedAccount.js.map +1 -0
  83. package/build/tools/collections/getReservedAccountTransactions.d.ts +20 -0
  84. package/build/tools/collections/getReservedAccountTransactions.d.ts.map +1 -0
  85. package/build/tools/collections/getReservedAccountTransactions.js +86 -0
  86. package/build/tools/collections/getReservedAccountTransactions.js.map +1 -0
  87. package/build/tools/collections/getTransactionDetails.d.ts +14 -0
  88. package/build/tools/collections/getTransactionDetails.d.ts.map +1 -0
  89. package/build/tools/collections/getTransactionDetails.js +60 -0
  90. package/build/tools/collections/getTransactionDetails.js.map +1 -0
  91. package/build/tools/collections/getTransactionStatus.d.ts +7 -0
  92. package/build/tools/collections/getTransactionStatus.d.ts.map +1 -0
  93. package/build/tools/collections/getTransactionStatus.js +58 -0
  94. package/build/tools/collections/getTransactionStatus.js.map +1 -0
  95. package/build/tools/collections/initiatePayment.d.ts +7 -0
  96. package/build/tools/collections/initiatePayment.d.ts.map +1 -0
  97. package/build/tools/collections/initiatePayment.js +63 -0
  98. package/build/tools/collections/initiatePayment.js.map +1 -0
  99. package/build/tools/collections/payWithBankTransfer.d.ts +7 -0
  100. package/build/tools/collections/payWithBankTransfer.d.ts.map +1 -0
  101. package/build/tools/collections/payWithBankTransfer.js +55 -0
  102. package/build/tools/collections/payWithBankTransfer.js.map +1 -0
  103. package/build/tools/collections/processRefund.d.ts +7 -0
  104. package/build/tools/collections/processRefund.d.ts.map +1 -0
  105. package/build/tools/collections/processRefund.js +55 -0
  106. package/build/tools/collections/processRefund.js.map +1 -0
  107. package/build/tools/collections/reserveAccount.d.ts +7 -0
  108. package/build/tools/collections/reserveAccount.d.ts.map +1 -0
  109. package/build/tools/collections/reserveAccount.js +57 -0
  110. package/build/tools/collections/reserveAccount.js.map +1 -0
  111. package/build/tools/directDebit/cancelMandate.d.ts +7 -0
  112. package/build/tools/directDebit/cancelMandate.d.ts.map +1 -0
  113. package/build/tools/directDebit/cancelMandate.js +55 -0
  114. package/build/tools/directDebit/cancelMandate.js.map +1 -0
  115. package/build/tools/directDebit/createMandate.d.ts +7 -0
  116. package/build/tools/directDebit/createMandate.d.ts.map +1 -0
  117. package/build/tools/directDebit/createMandate.js +55 -0
  118. package/build/tools/directDebit/createMandate.js.map +1 -0
  119. package/build/tools/directDebit/debitMandate.d.ts +7 -0
  120. package/build/tools/directDebit/debitMandate.d.ts.map +1 -0
  121. package/build/tools/directDebit/debitMandate.js +55 -0
  122. package/build/tools/directDebit/debitMandate.js.map +1 -0
  123. package/build/tools/directDebit/getMandateDebitStatus.d.ts +7 -0
  124. package/build/tools/directDebit/getMandateDebitStatus.d.ts.map +1 -0
  125. package/build/tools/directDebit/getMandateDebitStatus.js +55 -0
  126. package/build/tools/directDebit/getMandateDebitStatus.js.map +1 -0
  127. package/build/tools/directDebit/getMandateStatus.d.ts +7 -0
  128. package/build/tools/directDebit/getMandateStatus.d.ts.map +1 -0
  129. package/build/tools/directDebit/getMandateStatus.js +55 -0
  130. package/build/tools/directDebit/getMandateStatus.js.map +1 -0
  131. package/build/tools/registry.d.ts +11 -0
  132. package/build/tools/registry.d.ts.map +1 -0
  133. package/build/tools/registry.js +15 -0
  134. package/build/tools/registry.js.map +1 -0
  135. package/build/tools/utilities/getSupportedBanks.d.ts +8 -0
  136. package/build/tools/utilities/getSupportedBanks.d.ts.map +1 -0
  137. package/build/tools/utilities/getSupportedBanks.js +47 -0
  138. package/build/tools/utilities/getSupportedBanks.js.map +1 -0
  139. package/build/tools/utilities/getTransactionList.d.ts +47 -0
  140. package/build/tools/utilities/getTransactionList.d.ts.map +1 -0
  141. package/build/tools/utilities/getTransactionList.js +136 -0
  142. package/build/tools/utilities/getTransactionList.js.map +1 -0
  143. package/build/tools/verification/verifyBankAccount.d.ts +7 -0
  144. package/build/tools/verification/verifyBankAccount.d.ts.map +1 -0
  145. package/build/tools/verification/verifyBankAccount.js +58 -0
  146. package/build/tools/verification/verifyBankAccount.js.map +1 -0
  147. package/build/tools/verification/verifyBvn.d.ts +7 -0
  148. package/build/tools/verification/verifyBvn.d.ts.map +1 -0
  149. package/build/tools/verification/verifyBvn.js +55 -0
  150. package/build/tools/verification/verifyBvn.js.map +1 -0
  151. package/build/tools/verification/verifyBvnInfo.d.ts +7 -0
  152. package/build/tools/verification/verifyBvnInfo.d.ts.map +1 -0
  153. package/build/tools/verification/verifyBvnInfo.js +55 -0
  154. package/build/tools/verification/verifyBvnInfo.js.map +1 -0
  155. package/build/tools/verification/verifyNin.d.ts +7 -0
  156. package/build/tools/verification/verifyNin.d.ts.map +1 -0
  157. package/build/tools/verification/verifyNin.js +55 -0
  158. package/build/tools/verification/verifyNin.js.map +1 -0
  159. package/build/transport/http.d.ts +3 -0
  160. package/build/transport/http.d.ts.map +1 -0
  161. package/build/transport/http.js +71 -0
  162. package/build/transport/http.js.map +1 -0
  163. package/build/transport/stdio.d.ts +3 -0
  164. package/build/transport/stdio.d.ts.map +1 -0
  165. package/build/transport/stdio.js +8 -0
  166. package/build/transport/stdio.js.map +1 -0
  167. package/build/types/mcp.d.ts +11 -0
  168. package/build/types/mcp.d.ts.map +1 -0
  169. package/build/types/mcp.js +7 -0
  170. package/build/types/mcp.js.map +1 -0
  171. package/build/utils/clientContext.d.ts +7 -0
  172. package/build/utils/clientContext.d.ts.map +1 -0
  173. package/build/utils/clientContext.js +24 -0
  174. package/build/utils/clientContext.js.map +1 -0
  175. package/build/utils/errors.d.ts +21 -0
  176. package/build/utils/errors.d.ts.map +1 -0
  177. package/build/utils/errors.js +45 -0
  178. package/build/utils/errors.js.map +1 -0
  179. package/build/utils/format.d.ts +34 -0
  180. package/build/utils/format.d.ts.map +1 -0
  181. package/build/utils/format.js +362 -0
  182. package/build/utils/format.js.map +1 -0
  183. package/build/utils/formatters.d.ts +4 -0
  184. package/build/utils/formatters.d.ts.map +1 -0
  185. package/build/utils/formatters.js +26 -0
  186. package/build/utils/formatters.js.map +1 -0
  187. package/build/utils/logger.d.ts +3 -0
  188. package/build/utils/logger.d.ts.map +1 -0
  189. package/build/utils/logger.js +30 -0
  190. package/build/utils/logger.js.map +1 -0
  191. package/openapi/monnify.yaml +9295 -0
  192. package/package.json +55 -0
@@ -0,0 +1,2603 @@
1
+ import { z } from "zod";
2
+ const AuthResponseSuccess = z
3
+ .object({
4
+ requestSuccessful: z.boolean(),
5
+ responseCode: z.number().int(),
6
+ responseBody: z
7
+ .object({ accessToken: z.string(), expiresIn: z.number().int() })
8
+ .partial()
9
+ .passthrough(),
10
+ })
11
+ .partial()
12
+ .passthrough();
13
+ const AuthResponseError = z
14
+ .object({
15
+ requestSuccessful: z.boolean(),
16
+ responseCode: z.number().int(),
17
+ responseMessage: z.string(),
18
+ })
19
+ .partial()
20
+ .passthrough();
21
+ const AuthResponseNoHeaderError = z
22
+ .object({
23
+ requestSuccessful: z.boolean(),
24
+ responseCode: z.number().int(),
25
+ responseMessage: z.string(),
26
+ })
27
+ .partial()
28
+ .passthrough();
29
+ const InitializeTransactionRequest = z
30
+ .object({
31
+ amount: z.number(),
32
+ customerName: z.string().optional(),
33
+ customerEmail: z.string(),
34
+ paymentReference: z.string(),
35
+ paymentDescription: z.string().optional(),
36
+ currencyCode: z.string(),
37
+ contractCode: z.string(),
38
+ redirectUrl: z.string().optional(),
39
+ paymentMethods: z
40
+ .array(z.enum(["CARD", "ACCOUNT_TRANSFER", "USSD", "PHONE_NUMBER"]))
41
+ .optional(),
42
+ incomeSplitConfig: z
43
+ .array(z
44
+ .object({
45
+ subAccountCode: z.string(),
46
+ feePercentage: z.number(),
47
+ splitAmount: z.number(),
48
+ splitPercentage: z.number(),
49
+ feeBearer: z.boolean(),
50
+ })
51
+ .partial()
52
+ .passthrough())
53
+ .optional(),
54
+ metadata: z
55
+ .object({ name: z.string(), age: z.number().int() })
56
+ .partial()
57
+ .passthrough()
58
+ .optional(),
59
+ })
60
+ .passthrough();
61
+ const InitializeTransactionSuccessResponse = z
62
+ .object({
63
+ requestSuccessful: z.boolean(),
64
+ responseMessage: z.string(),
65
+ responseCode: z.string(),
66
+ responseBody: z
67
+ .object({
68
+ transactionReference: z.string(),
69
+ paymentReference: z.string(),
70
+ merchantName: z.string(),
71
+ merchantLogoUrl: z.string(),
72
+ apiKey: z.string(),
73
+ enabledPaymentMethod: z.array(z.enum(["ACCOUNT_TRANSFER", "CARD"])),
74
+ checkoutUrl: z.string(),
75
+ incomeSplitConfig: z.array(z
76
+ .object({
77
+ subAccountCode: z.string(),
78
+ splitAmount: z.number(),
79
+ feePercentage: z.number(),
80
+ feeBearer: z.boolean(),
81
+ splitPercentage: z.number().int(),
82
+ })
83
+ .partial()
84
+ .passthrough()),
85
+ })
86
+ .partial()
87
+ .passthrough(),
88
+ })
89
+ .partial()
90
+ .passthrough();
91
+ const ErrorResponse = z
92
+ .object({
93
+ requestSuccessful: z.boolean(),
94
+ responseCode: z.number().int(),
95
+ responseMessage: z.string(),
96
+ })
97
+ .partial()
98
+ .passthrough();
99
+ const InitBankTransferPaymentRequest = z
100
+ .object({ transactionReference: z.string(), bankCode: z.string().optional() })
101
+ .passthrough();
102
+ const InitBankTransferPaymentSuccessResponse = z
103
+ .object({
104
+ requestSuccessful: z.boolean(),
105
+ responseMessage: z.string(),
106
+ responseCode: z.string(),
107
+ responseBody: z
108
+ .object({
109
+ accountNumber: z.string(),
110
+ accountName: z.string(),
111
+ bankName: z.string(),
112
+ bankCode: z.string(),
113
+ ussdCode: z.string(),
114
+ })
115
+ .partial()
116
+ .passthrough(),
117
+ })
118
+ .partial()
119
+ .passthrough();
120
+ const CardInfo = z
121
+ .object({
122
+ number: z.string(),
123
+ expiryMonth: z.string(),
124
+ expiryYear: z.string(),
125
+ pin: z.string(),
126
+ cvv: z.string(),
127
+ })
128
+ .passthrough();
129
+ const DeviceInformation = z
130
+ .object({
131
+ httpBrowserLanguage: z.string(),
132
+ httpBrowserJavaEnabled: z.boolean(),
133
+ httpBrowserJavaScriptEnabled: z.boolean(),
134
+ httpBrowserColorDepth: z.number().int(),
135
+ httpBrowserScreenHeight: z.number().int(),
136
+ httpBrowserScreenWidth: z.number().int(),
137
+ httpBrowserTimeDifference: z.string(),
138
+ userAgentBrowserValue: z.string(),
139
+ })
140
+ .passthrough();
141
+ const ChargeRequest = z
142
+ .object({
143
+ transactionReference: z.string(),
144
+ collectionChannel: z.string().optional(),
145
+ card: CardInfo,
146
+ deviceInformation: DeviceInformation,
147
+ })
148
+ .passthrough();
149
+ const ChargeResponse = z
150
+ .object({
151
+ requestSuccessful: z.boolean(),
152
+ responseMessage: z.string(),
153
+ responseCode: z.string(),
154
+ responseBody: z
155
+ .object({
156
+ status: z.string(),
157
+ message: z.string(),
158
+ transactionReference: z.string(),
159
+ paymentReference: z.string(),
160
+ authorizedAmount: z.number().int(),
161
+ otpData: z
162
+ .object({ id: z.string(), message: z.string(), authData: z.string() })
163
+ .partial()
164
+ .passthrough(),
165
+ secure3dData: z
166
+ .object({ id: z.string(), redirectUrl: z.string() })
167
+ .partial()
168
+ .passthrough(),
169
+ })
170
+ .partial()
171
+ .passthrough(),
172
+ })
173
+ .partial()
174
+ .passthrough();
175
+ const AuthorizeOTPRequest = z
176
+ .object({
177
+ transactionReference: z.string(),
178
+ collectionChannel: z.string().optional(),
179
+ tokenId: z.string(),
180
+ token: z.string(),
181
+ })
182
+ .passthrough();
183
+ const AuthorizeOTPSuccessResponse = z
184
+ .object({
185
+ requestSuccessful: z.boolean(),
186
+ responseMessage: z.string(),
187
+ responseCode: z.string(),
188
+ responseBody: z
189
+ .object({
190
+ paymentStatus: z.string(),
191
+ paymentDescription: z.string(),
192
+ transactionReference: z.string(),
193
+ paymentReference: z.string(),
194
+ amountPaid: z.number(),
195
+ currencyPaid: z.string(),
196
+ })
197
+ .partial()
198
+ .passthrough(),
199
+ })
200
+ .partial()
201
+ .passthrough();
202
+ const Authorize3DSCardRequest = z
203
+ .object({
204
+ transactionReference: z.string(),
205
+ apiKey: z.string(),
206
+ collectionChannel: z.string().optional(),
207
+ card: z
208
+ .object({
209
+ number: z.number().int(),
210
+ expiryMonth: z.number().int(),
211
+ expiryYear: z.number().int(),
212
+ cvv: z.number().int(),
213
+ pin: z.number().int(),
214
+ })
215
+ .partial()
216
+ .passthrough(),
217
+ })
218
+ .passthrough();
219
+ const Authorize3DSCardSuccessResponse = z
220
+ .object({
221
+ requestSuccessful: z.boolean(),
222
+ responseMessage: z.string(),
223
+ responseCode: z.string(),
224
+ responseBody: z
225
+ .object({
226
+ paymentStatus: z.string(),
227
+ paymentDescription: z.string(),
228
+ transactionReference: z.string(),
229
+ paymentReference: z.string(),
230
+ amountPaid: z.number(),
231
+ currencyPaid: z.string(),
232
+ })
233
+ .partial()
234
+ .passthrough(),
235
+ })
236
+ .partial()
237
+ .passthrough();
238
+ const TransactionSearchResponse = z
239
+ .object({
240
+ content: z.array(z
241
+ .object({
242
+ transactionReference: z.string(),
243
+ paymentReference: z.string(),
244
+ amount: z.number(),
245
+ customerName: z.string(),
246
+ customerEmail: z.string(),
247
+ paymentStatus: z.string(),
248
+ transactionDate: z.string().datetime({ offset: true }),
249
+ })
250
+ .partial()
251
+ .passthrough()),
252
+ pageable: z
253
+ .object({
254
+ sort: z
255
+ .object({
256
+ empty: z.boolean(),
257
+ sorted: z.boolean(),
258
+ unsorted: z.boolean(),
259
+ })
260
+ .partial()
261
+ .passthrough(),
262
+ offset: z.number().int(),
263
+ pageSize: z.number().int(),
264
+ pageNumber: z.number().int(),
265
+ unpaged: z.boolean(),
266
+ paged: z.boolean(),
267
+ })
268
+ .partial()
269
+ .passthrough(),
270
+ last: z.boolean(),
271
+ totalPages: z.number().int(),
272
+ totalElements: z.number().int(),
273
+ size: z.number().int(),
274
+ number: z.number().int(),
275
+ sort: z
276
+ .object({
277
+ empty: z.boolean(),
278
+ sorted: z.boolean(),
279
+ unsorted: z.boolean(),
280
+ })
281
+ .partial()
282
+ .passthrough(),
283
+ first: z.boolean(),
284
+ numberOfElements: z.number().int(),
285
+ empty: z.boolean(),
286
+ })
287
+ .partial()
288
+ .passthrough();
289
+ const TransactionStatusResponse = z
290
+ .object({
291
+ requestSuccessful: z.boolean(),
292
+ responseMessage: z.string(),
293
+ responseCode: z.string(),
294
+ responseBody: z
295
+ .object({
296
+ transactionReference: z.string(),
297
+ paymentReference: z.string(),
298
+ amountPaid: z.string(),
299
+ totalPayable: z.string(),
300
+ settlementAmount: z.string(),
301
+ paidOn: z.string(),
302
+ paymentStatus: z.string(),
303
+ paymentDescription: z.string(),
304
+ currency: z.string(),
305
+ paymentMethod: z.string(),
306
+ product: z
307
+ .object({ type: z.string(), reference: z.string() })
308
+ .partial()
309
+ .passthrough(),
310
+ cardDetails: z
311
+ .object({
312
+ cardType: z.string(),
313
+ last4: z.string(),
314
+ expMonth: z.string(),
315
+ expYear: z.string(),
316
+ bin: z.string(),
317
+ bankCode: z.null(),
318
+ bankName: z.null(),
319
+ reusable: z.boolean(),
320
+ countryCode: z.null(),
321
+ cardToken: z.null(),
322
+ supportsTokenization: z.boolean(),
323
+ maskedPan: z.string(),
324
+ })
325
+ .partial()
326
+ .passthrough(),
327
+ accountDetails: z.null(),
328
+ accountPayments: z.array(z.unknown()),
329
+ customer: z
330
+ .object({ email: z.string(), name: z.string() })
331
+ .partial()
332
+ .passthrough(),
333
+ metaData: z.object({}).partial().passthrough(),
334
+ })
335
+ .partial()
336
+ .passthrough(),
337
+ })
338
+ .partial()
339
+ .passthrough();
340
+ const InitiateTransferRequest = z
341
+ .object({
342
+ amount: z.number(),
343
+ reference: z.string(),
344
+ narration: z.string(),
345
+ destinationBankCode: z.string(),
346
+ destinationAccountNumber: z.string(),
347
+ destinationAccountName: z.string(),
348
+ currency: z.string(),
349
+ sourceAccountNumber: z.string(),
350
+ senderInfo: z
351
+ .object({
352
+ sourceAccountNumber: z.string(),
353
+ sourceAccountName: z.string(),
354
+ sourceAccountBvn: z.string().optional(),
355
+ senderBankCode: z.string(),
356
+ })
357
+ .passthrough()
358
+ .optional(),
359
+ async: z.boolean().optional(),
360
+ })
361
+ .passthrough();
362
+ const InitiateTransferOTPResponse = z
363
+ .object({
364
+ requestSuccessful: z.boolean(),
365
+ responseMessage: z.string(),
366
+ responseCode: z.string(),
367
+ responseBody: z
368
+ .object({
369
+ amount: z.number().int(),
370
+ reference: z.string(),
371
+ status: z.string(),
372
+ dateCreated: z.string().datetime({ offset: true }),
373
+ totalFee: z.number().int(),
374
+ destinationAccountName: z.string(),
375
+ destinationBankName: z.string(),
376
+ destinationAccountNumber: z.string(),
377
+ destinationBankCode: z.string(),
378
+ })
379
+ .partial()
380
+ .passthrough(),
381
+ })
382
+ .partial()
383
+ .passthrough();
384
+ const InitiateTransferSuccessResponse = z
385
+ .object({
386
+ requestSuccessful: z.boolean(),
387
+ responseMessage: z.string(),
388
+ responseCode: z.string(),
389
+ responseBody: z
390
+ .object({
391
+ amount: z.number().int(),
392
+ reference: z.string(),
393
+ status: z.string(),
394
+ dateCreated: z.string().datetime({ offset: true }),
395
+ totalFee: z.number().int(),
396
+ destinationAccountName: z.string(),
397
+ destinationBankName: z.string(),
398
+ destinationAccountNumber: z.string(),
399
+ destinationBankCode: z.string(),
400
+ senderInfo: z
401
+ .object({
402
+ sourceAccountNumber: z.string(),
403
+ sourceAccountName: z.string(),
404
+ senderBankCode: z.string(),
405
+ })
406
+ .partial()
407
+ .passthrough(),
408
+ })
409
+ .partial()
410
+ .passthrough(),
411
+ })
412
+ .partial()
413
+ .passthrough();
414
+ const InitiateBulkTransferRequest = z
415
+ .object({
416
+ title: z.string(),
417
+ batchReference: z.string(),
418
+ narration: z.string(),
419
+ sourceAccountNumber: z.string(),
420
+ onValidationFailure: z.enum(["CONTINUE", "BREAK"]),
421
+ notificationInterval: z.number().int(),
422
+ transactionList: z.array(z
423
+ .object({
424
+ amount: z.number().int(),
425
+ reference: z.string(),
426
+ narration: z.string(),
427
+ destinationBankCode: z.string(),
428
+ destinationAccountNumber: z.string(),
429
+ destinationAccountName: z.string(),
430
+ currency: z.string(),
431
+ })
432
+ .passthrough()),
433
+ })
434
+ .passthrough();
435
+ const InitiateBulkTransferSuccessResponse = z
436
+ .object({
437
+ requestSuccessful: z.boolean(),
438
+ responseMessage: z.string(),
439
+ responseCode: z.string(),
440
+ responseBody: z
441
+ .object({
442
+ totalAmount: z.number().int(),
443
+ totalFee: z.number().int(),
444
+ batchReference: z.string(),
445
+ batchStatus: z.string(),
446
+ totalTransactionsCount: z.number().int(),
447
+ dateCreated: z.string().datetime({ offset: true }),
448
+ })
449
+ .partial()
450
+ .passthrough(),
451
+ })
452
+ .partial()
453
+ .passthrough();
454
+ const AuthorizeTransferRequest = z
455
+ .object({ reference: z.string(), authorizationCode: z.string() })
456
+ .passthrough();
457
+ const ResendOTPRequest = z.object({ reference: z.string() }).passthrough();
458
+ const ResendOTPSuccessResponse = z
459
+ .object({
460
+ requestSuccessful: z.boolean(),
461
+ responseMessage: z.string(),
462
+ responseCode: z.string(),
463
+ responseBody: z.object({ message: z.string() }).partial().passthrough(),
464
+ })
465
+ .partial()
466
+ .passthrough();
467
+ const ResendOTPRequestBulk = z
468
+ .object({ batchReference: z.string() })
469
+ .passthrough();
470
+ const ResendOTPSuccessResponseBulk = z
471
+ .object({
472
+ requestSuccessful: z.boolean(),
473
+ responseMessage: z.string(),
474
+ responseCode: z.string(),
475
+ responseBody: z.object({ message: z.string() }).partial().passthrough(),
476
+ })
477
+ .partial()
478
+ .passthrough();
479
+ const SingleTransferStatusResponse = z
480
+ .object({
481
+ requestSuccessful: z.boolean(),
482
+ responseMessage: z.string(),
483
+ responseCode: z.string(),
484
+ responseBody: z
485
+ .object({
486
+ amount: z.number().int(),
487
+ reference: z.string(),
488
+ narration: z.string(),
489
+ currency: z.string(),
490
+ fee: z.number().int(),
491
+ twoFaEnabled: z.boolean(),
492
+ status: z.string(),
493
+ transactionDescription: z.string(),
494
+ transactionReference: z.string(),
495
+ createdOn: z.string().datetime({ offset: true }),
496
+ sourceAccountNumber: z.string(),
497
+ destinationAccountNumber: z.string(),
498
+ destinationAccountName: z.string(),
499
+ destinationBankCode: z.string(),
500
+ destinationBankName: z.string(),
501
+ })
502
+ .partial()
503
+ .passthrough(),
504
+ })
505
+ .partial()
506
+ .passthrough();
507
+ const SingleTransferDetails = z
508
+ .object({
509
+ amount: z.number().int(),
510
+ reference: z.string(),
511
+ narration: z.string(),
512
+ currency: z.string(),
513
+ fee: z.number().int(),
514
+ twoFaEnabled: z.boolean(),
515
+ status: z.string(),
516
+ transactionDescription: z.string(),
517
+ transactionReference: z.string(),
518
+ createdOn: z.string().datetime({ offset: true }),
519
+ sourceAccountNumber: z.string(),
520
+ destinationAccountNumber: z.string(),
521
+ destinationAccountName: z.string(),
522
+ destinationBankCode: z.string(),
523
+ destinationBankName: z.string(),
524
+ })
525
+ .partial()
526
+ .passthrough();
527
+ const ListSingleTransfersResponse = z
528
+ .object({
529
+ requestSuccessful: z.boolean(),
530
+ responseMessage: z.string(),
531
+ responseCode: z.string(),
532
+ responseBody: z
533
+ .object({
534
+ content: z.array(SingleTransferDetails),
535
+ pageable: z
536
+ .object({
537
+ sort: z
538
+ .object({
539
+ sorted: z.boolean(),
540
+ unsorted: z.boolean(),
541
+ empty: z.boolean(),
542
+ })
543
+ .partial()
544
+ .passthrough(),
545
+ pageSize: z.number().int(),
546
+ pageNumber: z.number().int(),
547
+ offset: z.number().int(),
548
+ paged: z.boolean(),
549
+ unpaged: z.boolean(),
550
+ })
551
+ .partial()
552
+ .passthrough(),
553
+ last: z.boolean(),
554
+ totalPages: z.number().int(),
555
+ totalElements: z.number().int(),
556
+ sort: z
557
+ .object({
558
+ sorted: z.boolean(),
559
+ unsorted: z.boolean(),
560
+ empty: z.boolean(),
561
+ })
562
+ .partial()
563
+ .passthrough(),
564
+ first: z.boolean(),
565
+ numberOfElements: z.number().int(),
566
+ size: z.number().int(),
567
+ number: z.number().int(),
568
+ empty: z.boolean(),
569
+ })
570
+ .partial()
571
+ .passthrough(),
572
+ })
573
+ .partial()
574
+ .passthrough();
575
+ const BulkTransferDetails = z
576
+ .object({
577
+ totalAmount: z.number().int(),
578
+ totalFee: z.number().int(),
579
+ batchReference: z.string(),
580
+ batchStatus: z.string(),
581
+ totalTransactionsCount: z.number().int(),
582
+ dateCreated: z.string().datetime({ offset: true }),
583
+ })
584
+ .partial()
585
+ .passthrough();
586
+ const ListBulkTransfersResponse = z
587
+ .object({
588
+ requestSuccessful: z.boolean(),
589
+ responseMessage: z.string(),
590
+ responseCode: z.string(),
591
+ responseBody: z
592
+ .object({
593
+ content: z.array(BulkTransferDetails),
594
+ pageable: z
595
+ .object({
596
+ sort: z
597
+ .object({
598
+ sorted: z.boolean(),
599
+ unsorted: z.boolean(),
600
+ empty: z.boolean(),
601
+ })
602
+ .partial()
603
+ .passthrough(),
604
+ pageSize: z.number().int(),
605
+ pageNumber: z.number().int(),
606
+ offset: z.number().int(),
607
+ unpaged: z.boolean(),
608
+ paged: z.boolean(),
609
+ })
610
+ .partial()
611
+ .passthrough(),
612
+ totalPages: z.number().int(),
613
+ last: z.boolean(),
614
+ totalElements: z.number().int(),
615
+ sort: z
616
+ .object({
617
+ sorted: z.boolean(),
618
+ unsorted: z.boolean(),
619
+ empty: z.boolean(),
620
+ })
621
+ .partial()
622
+ .passthrough(),
623
+ first: z.boolean(),
624
+ numberOfElements: z.number().int(),
625
+ size: z.number().int(),
626
+ number: z.number().int(),
627
+ empty: z.boolean(),
628
+ })
629
+ .partial()
630
+ .passthrough(),
631
+ })
632
+ .partial()
633
+ .passthrough();
634
+ const BulkTransferTransactionsResponse = z.object({}).partial().passthrough();
635
+ const BulkBatchSummaryResponse = z
636
+ .object({
637
+ requestSuccessful: z.boolean(),
638
+ responseMessage: z.string(),
639
+ responseCode: z.string(),
640
+ responseBody: z
641
+ .object({
642
+ title: z.string(),
643
+ totalAmount: z.number().int(),
644
+ totalFee: z.number().int(),
645
+ batchReference: z.string(),
646
+ totalTransactionsCount: z.number().int(),
647
+ initiator: z.string(),
648
+ failedCount: z.number().int(),
649
+ successfulCount: z.number().int(),
650
+ pendingCount: z.number().int(),
651
+ pendingAmount: z.number().int(),
652
+ failedAmount: z.number().int(),
653
+ successfulAmount: z.number().int(),
654
+ batchStatus: z.string(),
655
+ dateCreated: z.string().datetime({ offset: true }),
656
+ })
657
+ .partial()
658
+ .passthrough(),
659
+ })
660
+ .partial()
661
+ .passthrough();
662
+ const DisbursementTransactionDetails = z
663
+ .object({
664
+ amount: z.number().int(),
665
+ reference: z.string(),
666
+ narration: z.string(),
667
+ currency: z.string(),
668
+ fee: z.number().int(),
669
+ twoFaEnabled: z.boolean(),
670
+ status: z.string(),
671
+ transactionDescription: z.string(),
672
+ transactionReference: z.string(),
673
+ createdOn: z.string().datetime({ offset: true }),
674
+ sourceAccountNumber: z.string(),
675
+ destinationAccountNumber: z.string(),
676
+ destinationAccountName: z.string(),
677
+ destinationBankCode: z.string(),
678
+ destinationBankName: z.string(),
679
+ })
680
+ .partial()
681
+ .passthrough();
682
+ const SearchDisbursementTransactionsResponse = z
683
+ .object({
684
+ requestSuccessful: z.boolean(),
685
+ responseMessage: z.string(),
686
+ responseCode: z.string(),
687
+ responseBody: z
688
+ .object({
689
+ content: z.array(DisbursementTransactionDetails),
690
+ pageable: z
691
+ .object({
692
+ sort: z
693
+ .object({
694
+ sorted: z.boolean(),
695
+ unsorted: z.boolean(),
696
+ empty: z.boolean(),
697
+ })
698
+ .partial()
699
+ .passthrough(),
700
+ pageSize: z.number().int(),
701
+ pageNumber: z.number().int(),
702
+ offset: z.number().int(),
703
+ paged: z.boolean(),
704
+ unpaged: z.boolean(),
705
+ })
706
+ .partial()
707
+ .passthrough(),
708
+ last: z.boolean(),
709
+ totalPages: z.number().int(),
710
+ totalElements: z.number().int(),
711
+ sort: z
712
+ .object({
713
+ sorted: z.boolean(),
714
+ unsorted: z.boolean(),
715
+ empty: z.boolean(),
716
+ })
717
+ .partial()
718
+ .passthrough(),
719
+ first: z.boolean(),
720
+ numberOfElements: z.number().int(),
721
+ size: z.number().int(),
722
+ number: z.number().int(),
723
+ empty: z.boolean(),
724
+ })
725
+ .partial()
726
+ .passthrough(),
727
+ })
728
+ .partial()
729
+ .passthrough();
730
+ const GetWalletBalanceResponse = z
731
+ .object({
732
+ requestSuccessful: z.boolean(),
733
+ responseMessage: z.string(),
734
+ responseCode: z.string(),
735
+ responseBody: z
736
+ .object({ availableBalance: z.string(), ledgerBalance: z.string() })
737
+ .partial()
738
+ .passthrough(),
739
+ })
740
+ .partial()
741
+ .passthrough();
742
+ const IncomeSplitConfig = z
743
+ .object({
744
+ subAccountCode: z.string(),
745
+ feePercentage: z.number(),
746
+ splitPercentage: z.number(),
747
+ feeBearer: z.boolean(),
748
+ splitAmount: z.number(),
749
+ })
750
+ .partial()
751
+ .passthrough();
752
+ const BankAccount = z
753
+ .object({ accountNumber: z.string(), bankCode: z.string() })
754
+ .partial()
755
+ .passthrough();
756
+ const AllowedPaymentSources = z
757
+ .object({
758
+ bvns: z.array(z.string()),
759
+ bankAccounts: z.array(BankAccount),
760
+ accountNames: z.array(z.string()),
761
+ })
762
+ .partial()
763
+ .passthrough();
764
+ const CreateReservedAccountRequest = z
765
+ .object({
766
+ accountReference: z.string(),
767
+ accountName: z.string(),
768
+ currencyCode: z.string(),
769
+ contractCode: z.string(),
770
+ customerEmail: z.string(),
771
+ customerName: z.string(),
772
+ bvn: z.string(),
773
+ getAllAvailableBanks: z.boolean(),
774
+ preferredBanks: z.array(z.string()),
775
+ incomeSplitConfig: z.array(IncomeSplitConfig).optional(),
776
+ restrictPaymentSource: z.boolean().optional().default(true),
777
+ allowedPaymentSources: AllowedPaymentSources.optional(),
778
+ nin: z.string().optional(),
779
+ })
780
+ .passthrough();
781
+ const Account = z
782
+ .object({
783
+ bankCode: z.string(),
784
+ bankName: z.string(),
785
+ accountNumber: z.string(),
786
+ accountName: z.string(),
787
+ })
788
+ .partial()
789
+ .passthrough();
790
+ const IncomeSplitConfigResponse = z
791
+ .object({
792
+ subAccountCode: z.string(),
793
+ feePercentage: z.number(),
794
+ feeBearer: z.boolean(),
795
+ splitPercentage: z.number(),
796
+ reservedAccountConfigCode: z.string(),
797
+ })
798
+ .partial()
799
+ .passthrough();
800
+ const ReservedAccountDetails = z
801
+ .object({
802
+ contractCode: z.string(),
803
+ accountReference: z.string(),
804
+ accountName: z.string(),
805
+ currencyCode: z.string(),
806
+ customerEmail: z.string(),
807
+ customerName: z.string(),
808
+ accounts: z.array(Account),
809
+ collectionChannel: z.string(),
810
+ reservationReference: z.string(),
811
+ reservedAccountType: z.string(),
812
+ status: z.string(),
813
+ createdOn: z.string().datetime({ offset: true }),
814
+ incomeSplitConfig: z.array(IncomeSplitConfigResponse),
815
+ bvn: z.string(),
816
+ restrictPaymentSource: z.boolean(),
817
+ allowedPaymentSources: AllowedPaymentSources,
818
+ })
819
+ .partial()
820
+ .passthrough();
821
+ const CreateReservedAccountResponse = z
822
+ .object({
823
+ requestSuccessful: z.boolean(),
824
+ responseMessage: z.string(),
825
+ responseCode: z.string(),
826
+ responseBody: ReservedAccountDetails,
827
+ })
828
+ .partial()
829
+ .passthrough();
830
+ const CreateInvoiceReservedAccountRequest = z
831
+ .object({
832
+ contractCode: z.string(),
833
+ accountName: z.string(),
834
+ currencyCode: z.string(),
835
+ accountReference: z.string(),
836
+ customerEmail: z.string(),
837
+ customerName: z.string(),
838
+ bvn: z.string(),
839
+ nin: z.string().optional(),
840
+ reservedAccountType: z.string(),
841
+ })
842
+ .passthrough();
843
+ const InvoiceReservedAccountDetails = z
844
+ .object({
845
+ contractCode: z.string(),
846
+ accountReference: z.string(),
847
+ accountName: z.string(),
848
+ currencyCode: z.string(),
849
+ customerEmail: z.string(),
850
+ customerName: z.string(),
851
+ accountNumber: z.string(),
852
+ bankName: z.string(),
853
+ bankCode: z.string(),
854
+ collectionChannel: z.string(),
855
+ reservationReference: z.string(),
856
+ reservedAccountType: z.string(),
857
+ status: z.string(),
858
+ createdOn: z.string().datetime({ offset: true }),
859
+ incomeSplitConfig: z.array(z.unknown()),
860
+ bvn: z.string(),
861
+ restrictPaymentSource: z.boolean(),
862
+ })
863
+ .partial()
864
+ .passthrough();
865
+ const CreateInvoiceReservedAccountSuccessResponse = z
866
+ .object({
867
+ requestSuccessful: z.boolean(),
868
+ responseMessage: z.string(),
869
+ responseCode: z.string(),
870
+ responseBody: InvoiceReservedAccountDetails,
871
+ })
872
+ .partial()
873
+ .passthrough();
874
+ const GetReservedAccountDetailsSuccessResponse = z
875
+ .object({
876
+ requestSuccessful: z.boolean(),
877
+ responseMessage: z.string(),
878
+ responseCode: z.string(),
879
+ responseBody: ReservedAccountDetails,
880
+ })
881
+ .partial()
882
+ .passthrough();
883
+ const AddLinkedAccountsRequest = z
884
+ .object({
885
+ getAllAvailableBanks: z.boolean(),
886
+ preferredBanks: z.array(z.string()).optional(),
887
+ })
888
+ .passthrough();
889
+ const LinkedAccountDetails = z
890
+ .object({
891
+ contractCode: z.string(),
892
+ accountReference: z.string(),
893
+ accountName: z.string(),
894
+ currencyCode: z.string(),
895
+ customerEmail: z.string(),
896
+ customerName: z.string(),
897
+ accounts: z.array(Account),
898
+ collectionChannel: z.string(),
899
+ reservationReference: z.string(),
900
+ reservedAccountType: z.string(),
901
+ status: z.string(),
902
+ createdOn: z.string().datetime({ offset: true }),
903
+ bvn: z.string(),
904
+ restrictPaymentSource: z.boolean(),
905
+ })
906
+ .partial()
907
+ .passthrough();
908
+ const AddLinkedAccountsSuccessResponse = z
909
+ .object({
910
+ requestSuccessful: z.boolean(),
911
+ responseMessage: z.string(),
912
+ responseCode: z.string(),
913
+ responseBody: LinkedAccountDetails,
914
+ })
915
+ .partial()
916
+ .passthrough();
917
+ const UpdateBvnRequest = z.object({ bvn: z.string() }).passthrough();
918
+ const UpdatedBvnAccountDetails = z
919
+ .object({
920
+ contractCode: z.string(),
921
+ accountReference: z.string(),
922
+ currencyCode: z.string(),
923
+ customerEmail: z.string(),
924
+ customerName: z.string(),
925
+ accountNumber: z.string(),
926
+ bankName: z.string(),
927
+ bankCode: z.string(),
928
+ collectionChannel: z.string(),
929
+ reservationReference: z.string(),
930
+ reservedAccountType: z.string(),
931
+ status: z.string(),
932
+ createdOn: z.string().datetime({ offset: true }),
933
+ incomeSplitConfig: z.array(IncomeSplitConfig),
934
+ bvn: z.string(),
935
+ restrictPaymentSource: z.boolean(),
936
+ })
937
+ .partial()
938
+ .passthrough();
939
+ const UpdateBvnSuccessResponse = z
940
+ .object({
941
+ requestSuccessful: z.boolean(),
942
+ responseMessage: z.string(),
943
+ responseCode: z.string(),
944
+ responseBody: UpdatedBvnAccountDetails,
945
+ })
946
+ .partial()
947
+ .passthrough();
948
+ const AllowedPaymentSourcesRequest = z
949
+ .object({
950
+ restrictPaymentSource: z.boolean(),
951
+ allowedPaymentSources: z
952
+ .object({
953
+ bvns: z.array(z.string()),
954
+ bankAccounts: z.array(BankAccount),
955
+ accountNames: z.array(z.string()),
956
+ })
957
+ .partial()
958
+ .passthrough(),
959
+ })
960
+ .passthrough();
961
+ const AllowedPaymentSourcesDetails = z
962
+ .object({
963
+ restrictPaymentSource: z.boolean(),
964
+ allowedPaymentSources: z
965
+ .object({
966
+ bvns: z.array(z.string()),
967
+ bankAccounts: z.array(BankAccount),
968
+ accountNames: z.array(z.string()),
969
+ })
970
+ .partial()
971
+ .passthrough(),
972
+ })
973
+ .partial()
974
+ .passthrough();
975
+ const AllowedPaymentSourcesSuccessResponse = z
976
+ .object({
977
+ requestSuccessful: z.boolean(),
978
+ responseMessage: z.string(),
979
+ responseCode: z.string(),
980
+ responseBody: AllowedPaymentSourcesDetails,
981
+ })
982
+ .partial()
983
+ .passthrough();
984
+ const UpdateSplitConfigRequestItem = z
985
+ .object({
986
+ subAccountCode: z.string(),
987
+ feeBearer: z.boolean().optional().default(false),
988
+ feePercentage: z.number().optional().default(0),
989
+ splitPercentage: z.number().optional().default(0),
990
+ })
991
+ .passthrough();
992
+ const SplitConfigDetail = z
993
+ .object({
994
+ subAccountCode: z.string(),
995
+ feePercentage: z.number(),
996
+ feeBearer: z.boolean(),
997
+ splitPercentage: z.number(),
998
+ reservedAccountConfigCode: z.string(),
999
+ })
1000
+ .partial()
1001
+ .passthrough();
1002
+ const UpdatedSplitConfigDetails = z
1003
+ .object({
1004
+ code: z.string(),
1005
+ reservedAccountCode: z.string(),
1006
+ feeBearer: z.string(),
1007
+ configDetails: z.array(SplitConfigDetail),
1008
+ })
1009
+ .partial()
1010
+ .passthrough();
1011
+ const UpdateSplitConfigSuccessResponse = z
1012
+ .object({
1013
+ requestSuccessful: z.boolean(),
1014
+ responseMessage: z.string(),
1015
+ responseCode: z.string(),
1016
+ responseBody: UpdatedSplitConfigDetails,
1017
+ })
1018
+ .partial()
1019
+ .passthrough();
1020
+ const DeallocatedAccountDetails = z
1021
+ .object({
1022
+ contractCode: z.string(),
1023
+ accountReference: z.string(),
1024
+ accountName: z.string(),
1025
+ currencyCode: z.string(),
1026
+ customerEmail: z.string(),
1027
+ customerName: z.string(),
1028
+ accountNumber: z.string(),
1029
+ bankName: z.string(),
1030
+ bankCode: z.string(),
1031
+ collectionChannel: z.string(),
1032
+ reservationReference: z.string(),
1033
+ reservedAccountType: z.string(),
1034
+ status: z.string(),
1035
+ createdOn: z.string().datetime({ offset: true }),
1036
+ bvn: z.string(),
1037
+ restrictPaymentSource: z.boolean(),
1038
+ })
1039
+ .partial()
1040
+ .passthrough();
1041
+ const DeallocateAccountSuccessResponse = z
1042
+ .object({
1043
+ requestSuccessful: z.boolean(),
1044
+ responseMessage: z.string(),
1045
+ responseCode: z.string(),
1046
+ responseBody: DeallocatedAccountDetails,
1047
+ })
1048
+ .partial()
1049
+ .passthrough();
1050
+ const CustomerDTO = z
1051
+ .object({ email: z.string(), name: z.string(), merchantCode: z.string() })
1052
+ .partial()
1053
+ .passthrough();
1054
+ const Transaction = z
1055
+ .object({
1056
+ customerDTO: CustomerDTO,
1057
+ providerAmount: z.number(),
1058
+ paymentMethod: z.string(),
1059
+ createdOn: z.string().datetime({ offset: true }),
1060
+ amount: z.number(),
1061
+ flagged: z.boolean(),
1062
+ providerCode: z.string(),
1063
+ fee: z.number(),
1064
+ currencyCode: z.string(),
1065
+ completedOn: z.string().datetime({ offset: true }),
1066
+ paymentDescription: z.string(),
1067
+ paymentStatus: z.string(),
1068
+ transactionReference: z.string(),
1069
+ paymentReference: z.string(),
1070
+ merchantCode: z.string(),
1071
+ merchantName: z.string(),
1072
+ payableAmount: z.number(),
1073
+ amountPaid: z.number(),
1074
+ completed: z.boolean(),
1075
+ settleInstantly: z.boolean(),
1076
+ })
1077
+ .partial()
1078
+ .passthrough();
1079
+ const Sort = z
1080
+ .object({ sorted: z.boolean(), unsorted: z.boolean(), empty: z.boolean() })
1081
+ .partial()
1082
+ .passthrough();
1083
+ const Pageable = z
1084
+ .object({
1085
+ sort: Sort,
1086
+ pageSize: z.number().int(),
1087
+ pageNumber: z.number().int(),
1088
+ offset: z.number().int(),
1089
+ unpaged: z.boolean(),
1090
+ paged: z.boolean(),
1091
+ })
1092
+ .partial()
1093
+ .passthrough();
1094
+ const TransactionsResponseBody = z
1095
+ .object({
1096
+ content: z.array(Transaction),
1097
+ pageable: Pageable,
1098
+ totalElements: z.number().int(),
1099
+ totalPages: z.number().int(),
1100
+ last: z.boolean(),
1101
+ sort: Sort,
1102
+ first: z.boolean(),
1103
+ numberOfElements: z.number().int(),
1104
+ size: z.number().int(),
1105
+ number: z.number().int(),
1106
+ empty: z.boolean(),
1107
+ })
1108
+ .partial()
1109
+ .passthrough();
1110
+ const GetTransactionsSuccessResponse = z
1111
+ .object({
1112
+ requestSuccessful: z.boolean(),
1113
+ responseMessage: z.string(),
1114
+ responseCode: z.string(),
1115
+ responseBody: TransactionsResponseBody,
1116
+ })
1117
+ .partial()
1118
+ .passthrough();
1119
+ const UpdateKycInfoRequest = z
1120
+ .object({ bvn: z.string(), nin: z.string() })
1121
+ .passthrough();
1122
+ const UpdatedKycInfoDetails = z
1123
+ .object({
1124
+ accountReference: z.string(),
1125
+ accountName: z.string(),
1126
+ customerEmail: z.string(),
1127
+ customerName: z.string(),
1128
+ bvn: z.string(),
1129
+ })
1130
+ .partial()
1131
+ .passthrough();
1132
+ const UpdateKycInfoSuccessResponse = z
1133
+ .object({
1134
+ requestSuccessful: z.boolean(),
1135
+ responseMessage: z.string(),
1136
+ responseCode: z.string(),
1137
+ responseBody: UpdatedKycInfoDetails,
1138
+ })
1139
+ .partial()
1140
+ .passthrough();
1141
+ const CreateInvoiceRequest = z
1142
+ .object({
1143
+ amount: z.number(),
1144
+ currencyCode: z.string(),
1145
+ invoiceReference: z.string(),
1146
+ customerName: z.string(),
1147
+ customerEmail: z.string(),
1148
+ contractCode: z.string(),
1149
+ description: z.string(),
1150
+ expiryDate: z.string().datetime({ offset: true }),
1151
+ paymentMethods: z.array(z.string()).optional(),
1152
+ incomeSplitConfig: z.array(IncomeSplitConfig).optional(),
1153
+ redirectUrl: z.string().optional(),
1154
+ accountReference: z.string().optional(),
1155
+ })
1156
+ .passthrough();
1157
+ const InvoiceSplitConfig = z
1158
+ .object({
1159
+ subAccountCode: z.string(),
1160
+ splitAmount: z.number(),
1161
+ feePercentage: z.number(),
1162
+ feeBearer: z.boolean(),
1163
+ splitPercentage: z.number().nullable(),
1164
+ })
1165
+ .partial()
1166
+ .passthrough();
1167
+ const InvoiceDetails = z
1168
+ .object({
1169
+ amount: z.number(),
1170
+ invoiceReference: z.string(),
1171
+ invoiceStatus: z.string(),
1172
+ description: z.string(),
1173
+ contractCode: z.string(),
1174
+ customerEmail: z.string(),
1175
+ customerName: z.string(),
1176
+ expiryDate: z.string().datetime({ offset: true }),
1177
+ createdBy: z.string(),
1178
+ createdOn: z.string().datetime({ offset: true }),
1179
+ checkoutUrl: z.string(),
1180
+ accountNumber: z.string(),
1181
+ accountName: z.string(),
1182
+ bankName: z.string(),
1183
+ bankCode: z.string(),
1184
+ redirectUrl: z.string(),
1185
+ transactionReference: z.string(),
1186
+ incomeSplitConfig: z.array(InvoiceSplitConfig),
1187
+ })
1188
+ .partial()
1189
+ .passthrough();
1190
+ const CreateInvoiceSuccessResponse = z
1191
+ .object({
1192
+ requestSuccessful: z.boolean(),
1193
+ responseMessage: z.string(),
1194
+ responseCode: z.string(),
1195
+ responseBody: InvoiceDetails,
1196
+ })
1197
+ .partial()
1198
+ .passthrough();
1199
+ const ViewInvoiceDetailsSuccessResponse = z
1200
+ .object({
1201
+ requestSuccessful: z.boolean(),
1202
+ responseMessage: z.string(),
1203
+ responseCode: z.string(),
1204
+ responseBody: InvoiceDetails,
1205
+ })
1206
+ .partial()
1207
+ .passthrough();
1208
+ const InvoiceListItem = z
1209
+ .object({
1210
+ amount: z.number(),
1211
+ invoiceReference: z.string(),
1212
+ invoiceStatus: z.string(),
1213
+ description: z.string(),
1214
+ contractCode: z.string(),
1215
+ customerEmail: z.string(),
1216
+ customerName: z.string(),
1217
+ expiryDate: z.string().datetime({ offset: true }),
1218
+ createdBy: z.string(),
1219
+ createdOn: z.string().datetime({ offset: true }),
1220
+ accountNumber: z.string(),
1221
+ bankName: z.string(),
1222
+ bankCode: z.string(),
1223
+ })
1224
+ .partial()
1225
+ .passthrough();
1226
+ const InvoiceList = z
1227
+ .object({
1228
+ content: z.array(InvoiceListItem),
1229
+ pageable: Pageable,
1230
+ last: z.boolean(),
1231
+ totalElements: z.number().int(),
1232
+ totalPages: z.number().int(),
1233
+ sort: Sort,
1234
+ first: z.boolean(),
1235
+ numberOfElements: z.number().int(),
1236
+ size: z.number().int(),
1237
+ number: z.number().int(),
1238
+ empty: z.boolean(),
1239
+ })
1240
+ .partial()
1241
+ .passthrough();
1242
+ const GetAllInvoicesSuccessResponse = z
1243
+ .object({
1244
+ requestSuccessful: z.boolean(),
1245
+ responseMessage: z.string(),
1246
+ responseCode: z.string(),
1247
+ responseBody: InvoiceList,
1248
+ })
1249
+ .partial()
1250
+ .passthrough();
1251
+ const CancelledInvoiceDetails = z
1252
+ .object({
1253
+ amount: z.number(),
1254
+ invoiceReference: z.string(),
1255
+ invoiceStatus: z.string(),
1256
+ description: z.string(),
1257
+ contractCode: z.string(),
1258
+ customerEmail: z.string(),
1259
+ customerName: z.string(),
1260
+ expiryDate: z.string().datetime({ offset: true }),
1261
+ createdBy: z.string(),
1262
+ createdOn: z.string().datetime({ offset: true }),
1263
+ accountNumber: z.string(),
1264
+ bankName: z.string(),
1265
+ bankCode: z.string(),
1266
+ })
1267
+ .partial()
1268
+ .passthrough();
1269
+ const CancelInvoiceSuccessResponse = z
1270
+ .object({
1271
+ requestSuccessful: z.boolean(),
1272
+ responseMessage: z.string(),
1273
+ responseCode: z.string(),
1274
+ responseBody: CancelledInvoiceDetails,
1275
+ })
1276
+ .partial()
1277
+ .passthrough();
1278
+ const MetaData = z
1279
+ .object({ ipAddress: z.string(), deviceType: z.string() })
1280
+ .partial()
1281
+ .passthrough();
1282
+ const ChargeCardTokenRequest = z
1283
+ .object({
1284
+ cardToken: z.string(),
1285
+ amount: z.number(),
1286
+ customerName: z.string().optional(),
1287
+ customerEmail: z.string().email(),
1288
+ paymentReference: z.string(),
1289
+ paymentDescription: z.string().optional(),
1290
+ currencyCode: z.string().optional().default("NGN"),
1291
+ contractCode: z.string(),
1292
+ apiKey: z.string(),
1293
+ metaData: MetaData.optional(),
1294
+ incomeSplitConfig: z.array(IncomeSplitConfig).optional(),
1295
+ })
1296
+ .passthrough();
1297
+ const Product = z
1298
+ .object({ type: z.string(), reference: z.string() })
1299
+ .partial()
1300
+ .passthrough();
1301
+ const CardDetails = z
1302
+ .object({
1303
+ cardType: z.string(),
1304
+ last4: z.string(),
1305
+ expMonth: z.string(),
1306
+ expYear: z.string(),
1307
+ bin: z.string(),
1308
+ bankCode: z.string(),
1309
+ bankName: z.string(),
1310
+ reusable: z.boolean(),
1311
+ countryCode: z.string().nullable(),
1312
+ cardToken: z.string(),
1313
+ supportsTokenization: z.boolean(),
1314
+ maskedPan: z.string(),
1315
+ })
1316
+ .partial()
1317
+ .passthrough();
1318
+ const CustomerDetails = z
1319
+ .object({ email: z.string().email(), name: z.string() })
1320
+ .partial()
1321
+ .passthrough();
1322
+ const ChargeCardTokenResponseBody = z
1323
+ .object({
1324
+ transactionReference: z.string(),
1325
+ paymentReference: z.string(),
1326
+ amountPaid: z.string(),
1327
+ totalPayable: z.string(),
1328
+ settlementAmount: z.string(),
1329
+ paidOn: z.string(),
1330
+ paymentStatus: z.string(),
1331
+ paymentDescription: z.string(),
1332
+ currency: z.string(),
1333
+ paymentMethod: z.string(),
1334
+ product: Product,
1335
+ cardDetails: CardDetails,
1336
+ accountDetails: z.object({}).partial().passthrough().nullable(),
1337
+ accountPayments: z.array(z.object({}).partial().passthrough()),
1338
+ customer: CustomerDetails,
1339
+ metaData: MetaData,
1340
+ })
1341
+ .partial()
1342
+ .passthrough();
1343
+ const ChargeCardTokenSuccessResponse = z
1344
+ .object({
1345
+ requestSuccessful: z.boolean(),
1346
+ responseMessage: z.string(),
1347
+ responseCode: z.string(),
1348
+ responseBody: ChargeCardTokenResponseBody,
1349
+ })
1350
+ .partial()
1351
+ .passthrough();
1352
+ const CreateMandateRequest = z
1353
+ .object({
1354
+ contractCode: z.string(),
1355
+ mandateReference: z.string(),
1356
+ mandateAmount: z.number().optional(),
1357
+ autoRenew: z.boolean().optional(),
1358
+ customerCancellation: z.boolean().optional(),
1359
+ customerName: z.string(),
1360
+ customerPhoneNumber: z.string(),
1361
+ customerEmailAddress: z.string().email(),
1362
+ customerAddress: z.string(),
1363
+ customerAccountNumber: z.string(),
1364
+ customerAccountBankCode: z.string(),
1365
+ mandateDescription: z.string(),
1366
+ mandateStartDate: z.string().datetime({ offset: true }),
1367
+ mandateEndDate: z.string().datetime({ offset: true }),
1368
+ redirectUrl: z.string().optional(),
1369
+ debitAmount: z.number().nullish(),
1370
+ })
1371
+ .passthrough();
1372
+ const MandateCreationResponseBody = z
1373
+ .object({
1374
+ responseMessage: z.string(),
1375
+ mandateReference: z.string(),
1376
+ mandateCode: z.string(),
1377
+ mandateStatus: z.string(),
1378
+ redirectUrl: z.string(),
1379
+ })
1380
+ .partial()
1381
+ .passthrough();
1382
+ const CreateMandateSuccessResponse = z
1383
+ .object({
1384
+ requestSuccessful: z.boolean(),
1385
+ responseMessage: z.string(),
1386
+ responseCode: z.string(),
1387
+ responseBody: MandateCreationResponseBody,
1388
+ })
1389
+ .partial()
1390
+ .passthrough();
1391
+ const MandateStatusDetails = z
1392
+ .object({
1393
+ mandateCode: z.string(),
1394
+ externalMandateReference: z.string(),
1395
+ startDate: z.string().datetime({ offset: true }),
1396
+ endDate: z.string().datetime({ offset: true }),
1397
+ mandateStatus: z.string(),
1398
+ mandateAmount: z.number().int(),
1399
+ contractCode: z.string(),
1400
+ autoRenew: z.boolean(),
1401
+ customerPhoneNumber: z.string(),
1402
+ customerEmailAddress: z.string().email(),
1403
+ customerAddress: z.string(),
1404
+ customerName: z.string(),
1405
+ customerAccountName: z.string(),
1406
+ customerAccountNumber: z.string(),
1407
+ customerAccountBankCode: z.string(),
1408
+ mandateDescription: z.string(),
1409
+ debitAmount: z.number().int().nullable(),
1410
+ authorizationMessage: z.string().nullable(),
1411
+ authorizationLink: z.string().nullable(),
1412
+ })
1413
+ .partial()
1414
+ .passthrough();
1415
+ const GetMandateStatusSuccessResponse = z
1416
+ .object({
1417
+ requestSuccessful: z.boolean(),
1418
+ responseMessage: z.string(),
1419
+ responseCode: z.string(),
1420
+ responseBody: z.array(MandateStatusDetails),
1421
+ })
1422
+ .partial()
1423
+ .passthrough();
1424
+ const DebitMandateRequest = z
1425
+ .object({
1426
+ paymentReference: z.string(),
1427
+ mandateCode: z.string(),
1428
+ debitAmount: z.number(),
1429
+ narration: z.string(),
1430
+ customerEmail: z.string().email(),
1431
+ incomeSplitConfig: z
1432
+ .array(z
1433
+ .object({
1434
+ subAccountCode: z.string(),
1435
+ feePercentage: z.number(),
1436
+ splitAmount: z.number(),
1437
+ splitPercentage: z.number(),
1438
+ feeBearer: z.boolean(),
1439
+ })
1440
+ .partial()
1441
+ .passthrough())
1442
+ .optional(),
1443
+ })
1444
+ .passthrough();
1445
+ const DebitMandateResponseBody = z
1446
+ .object({
1447
+ transactionStatus: z.string(),
1448
+ responseMessage: z.string(),
1449
+ transactionReference: z.string(),
1450
+ paymentReference: z.string(),
1451
+ debitAmount: z.number().int(),
1452
+ narration: z.string(),
1453
+ mandateCode: z.string(),
1454
+ })
1455
+ .partial()
1456
+ .passthrough();
1457
+ const DebitMandateSuccessResponse = z
1458
+ .object({
1459
+ requestSuccessful: z.boolean(),
1460
+ responseMessage: z.string(),
1461
+ responseCode: z.string(),
1462
+ responseBody: DebitMandateResponseBody,
1463
+ })
1464
+ .partial()
1465
+ .passthrough();
1466
+ const DebitStatusDetails = z
1467
+ .object({
1468
+ transactionStatus: z.string(),
1469
+ responseMessage: z.object({}).partial().passthrough().nullable(),
1470
+ transactionReference: z.string(),
1471
+ paymentReference: z.string(),
1472
+ debitAmount: z.number().int(),
1473
+ narration: z.string(),
1474
+ mandateCode: z.string(),
1475
+ })
1476
+ .partial()
1477
+ .passthrough();
1478
+ const GetDebitStatusSuccessResponse = z
1479
+ .object({
1480
+ requestSuccessful: z.boolean(),
1481
+ responseMessage: z.string(),
1482
+ responseCode: z.string(),
1483
+ responseBody: DebitStatusDetails,
1484
+ })
1485
+ .partial()
1486
+ .passthrough();
1487
+ const UpdateMandateResponseBody = z
1488
+ .object({
1489
+ responseMessage: z.string(),
1490
+ mandateReference: z.string(),
1491
+ mandateCode: z.string(),
1492
+ mandateStatus: z.string(),
1493
+ })
1494
+ .partial()
1495
+ .passthrough();
1496
+ const UpdateMandateSuccessResponse = z
1497
+ .object({
1498
+ requestSuccessful: z.boolean(),
1499
+ responseMessage: z.string(),
1500
+ responseCode: z.string(),
1501
+ responseBody: UpdateMandateResponseBody,
1502
+ })
1503
+ .partial()
1504
+ .passthrough();
1505
+ const CreateSubAccountRequest = z
1506
+ .object({
1507
+ currencyCode: z.string(),
1508
+ accountNumber: z.string(),
1509
+ bankCode: z.string(),
1510
+ email: z.string().email(),
1511
+ defaultSplitPercentage: z.number(),
1512
+ })
1513
+ .passthrough();
1514
+ const SubAccountDetails = z
1515
+ .object({
1516
+ subAccountCode: z.string(),
1517
+ accountNumber: z.string(),
1518
+ accountName: z.string(),
1519
+ currencyCode: z.string(),
1520
+ email: z.string().email(),
1521
+ bankCode: z.string(),
1522
+ bankName: z.string(),
1523
+ defaultSplitPercentage: z.number(),
1524
+ settlementProfileCode: z.string(),
1525
+ settlementReportEmails: z.array(z.string()),
1526
+ })
1527
+ .partial()
1528
+ .passthrough();
1529
+ const CreateSubAccountSuccessResponse = z
1530
+ .object({
1531
+ requestSuccessful: z.boolean(),
1532
+ responseMessage: z.string(),
1533
+ responseCode: z.string(),
1534
+ responseBody: z.array(SubAccountDetails),
1535
+ })
1536
+ .partial()
1537
+ .passthrough();
1538
+ const GetSubAccountsSuccessResponse = z
1539
+ .object({
1540
+ requestSuccessful: z.boolean(),
1541
+ responseMessage: z.string(),
1542
+ responseCode: z.string(),
1543
+ responseBody: z.array(SubAccountDetails),
1544
+ })
1545
+ .partial()
1546
+ .passthrough();
1547
+ const UpdateSubAccountRequest = z
1548
+ .object({
1549
+ subAccountCode: z.string(),
1550
+ currencyCode: z.string(),
1551
+ accountNumber: z.string(),
1552
+ bankCode: z.string(),
1553
+ email: z.string().email(),
1554
+ defaultSplitPercentage: z.number(),
1555
+ })
1556
+ .passthrough();
1557
+ const UpdateSubAccountSuccessResponse = z
1558
+ .object({
1559
+ requestSuccessful: z.boolean(),
1560
+ responseMessage: z.string(),
1561
+ responseCode: z.string(),
1562
+ responseBody: SubAccountDetails,
1563
+ })
1564
+ .partial()
1565
+ .passthrough();
1566
+ const DeleteSubAccountSuccessResponse = z
1567
+ .object({
1568
+ requestSuccessful: z.boolean(),
1569
+ responseMessage: z.string(),
1570
+ responseCode: z.string(),
1571
+ })
1572
+ .partial()
1573
+ .passthrough();
1574
+ const CreateLimitProfileRequest = z
1575
+ .object({
1576
+ limitProfileName: z.string(),
1577
+ singleTransactionValue: z.number(),
1578
+ dailyTransactionValue: z.number(),
1579
+ dailyTransactionVolume: z.number().int(),
1580
+ })
1581
+ .passthrough();
1582
+ const LimitProfileDetails = z
1583
+ .object({
1584
+ limitProfileCode: z.string(),
1585
+ limitProfileName: z.string(),
1586
+ singleTransactionValue: z.number().int(),
1587
+ dailyTransactionVolume: z.number().int(),
1588
+ dailyTransactionValue: z.number().int(),
1589
+ dateCreated: z.string(),
1590
+ lastModified: z.string(),
1591
+ })
1592
+ .partial()
1593
+ .passthrough();
1594
+ const CreateLimitProfileSuccessResponse = z
1595
+ .object({
1596
+ requestSuccessful: z.boolean(),
1597
+ responseMessage: z.string(),
1598
+ responseCode: z.string(),
1599
+ responseBody: LimitProfileDetails,
1600
+ })
1601
+ .partial()
1602
+ .passthrough();
1603
+ const SortObject = z
1604
+ .object({ sorted: z.boolean(), unsorted: z.boolean(), empty: z.boolean() })
1605
+ .partial()
1606
+ .passthrough();
1607
+ const PageableObject = z
1608
+ .object({
1609
+ sort: SortObject,
1610
+ pageSize: z.number().int(),
1611
+ pageNumber: z.number().int(),
1612
+ offset: z.number().int(),
1613
+ unpaged: z.boolean(),
1614
+ paged: z.boolean(),
1615
+ })
1616
+ .partial()
1617
+ .passthrough();
1618
+ const LimitProfilePage = z
1619
+ .object({
1620
+ content: z.array(LimitProfileDetails),
1621
+ pageable: PageableObject,
1622
+ last: z.boolean(),
1623
+ totalElements: z.number().int(),
1624
+ totalPages: z.number().int(),
1625
+ sort: SortObject,
1626
+ first: z.boolean(),
1627
+ numberOfElements: z.number().int(),
1628
+ size: z.number().int(),
1629
+ number: z.number().int(),
1630
+ empty: z.boolean(),
1631
+ })
1632
+ .partial()
1633
+ .passthrough();
1634
+ const GetLimitProfilesSuccessResponse = z
1635
+ .object({
1636
+ requestSuccessful: z.boolean(),
1637
+ responseMessage: z.string(),
1638
+ responseCode: z.string(),
1639
+ responseBody: LimitProfilePage,
1640
+ })
1641
+ .partial()
1642
+ .passthrough();
1643
+ const UpdateLimitProfileRequest = z
1644
+ .object({
1645
+ limitProfileName: z.string(),
1646
+ singleTransactionValue: z.number(),
1647
+ dailyTransactionValue: z.number(),
1648
+ dailyTransactionVolume: z.number().int(),
1649
+ })
1650
+ .passthrough();
1651
+ const UpdateLimitProfileSuccessResponse = z
1652
+ .object({
1653
+ requestSuccessful: z.boolean(),
1654
+ responseMessage: z.string(),
1655
+ responseCode: z.string(),
1656
+ responseBody: LimitProfileDetails,
1657
+ })
1658
+ .partial()
1659
+ .passthrough();
1660
+ const ReserveAccountWithLimitRequest = z
1661
+ .object({
1662
+ contractCode: z.string(),
1663
+ accountName: z.string(),
1664
+ currencyCode: z.string().optional(),
1665
+ accountReference: z.string(),
1666
+ customerEmail: z.string().email().optional(),
1667
+ customerName: z.string().optional(),
1668
+ getAllAvailableBanks: z.boolean().optional(),
1669
+ preferredBanks: z.array(z.string()).optional(),
1670
+ limitProfileCode: z.string(),
1671
+ })
1672
+ .passthrough();
1673
+ const LimitProfileConfigDetails = z
1674
+ .object({
1675
+ limitProfileCode: z.string(),
1676
+ limitProfileName: z.string(),
1677
+ singleTransactionValue: z.number(),
1678
+ dailyTransactionVolume: z.number().int(),
1679
+ dailyTransactionValue: z.number(),
1680
+ })
1681
+ .partial()
1682
+ .passthrough();
1683
+ const ReservedAccountDetailsWithLimit = z
1684
+ .object({
1685
+ contractCode: z.string(),
1686
+ accountReference: z.string(),
1687
+ accountName: z.string(),
1688
+ currencyCode: z.string(),
1689
+ customerEmail: z.string().email(),
1690
+ customerName: z.string(),
1691
+ accountNumber: z.string(),
1692
+ bankName: z.string(),
1693
+ bankCode: z.string(),
1694
+ collectionChannel: z.string(),
1695
+ reservationReference: z.string(),
1696
+ reservedAccountType: z.string(),
1697
+ status: z.string(),
1698
+ createdOn: z.string().datetime({ offset: true }),
1699
+ incomeSplitConfig: z.array(z.object({}).partial().passthrough()),
1700
+ restrictPaymentSource: z.boolean(),
1701
+ limitProfileConfig: LimitProfileConfigDetails,
1702
+ })
1703
+ .partial()
1704
+ .passthrough();
1705
+ const ReserveAccountWithLimitSuccessResponse = z
1706
+ .object({
1707
+ requestSuccessful: z.boolean(),
1708
+ responseMessage: z.string(),
1709
+ responseCode: z.string(),
1710
+ responseBody: ReservedAccountDetailsWithLimit,
1711
+ })
1712
+ .partial()
1713
+ .passthrough();
1714
+ const UpdateReserveAccountLimitRequest = z
1715
+ .object({ accountReference: z.string(), limitProfileCode: z.string() })
1716
+ .passthrough();
1717
+ const UpdateReserveAccountLimitSuccessResponse = z
1718
+ .object({
1719
+ requestSuccessful: z.boolean(),
1720
+ responseMessage: z.string(),
1721
+ responseCode: z.string(),
1722
+ responseBody: ReservedAccountDetailsWithLimit,
1723
+ })
1724
+ .partial()
1725
+ .passthrough();
1726
+ const InitiateRefundRequest = z
1727
+ .object({
1728
+ transactionReference: z.string(),
1729
+ refundAmount: z.number(),
1730
+ refundReference: z.string(),
1731
+ refundReason: z.string(),
1732
+ customerNote: z.string(),
1733
+ destinationAccountNumber: z.string().optional(),
1734
+ destinationAccountBankCode: z.string().optional(),
1735
+ })
1736
+ .passthrough();
1737
+ const RefundDetails = z
1738
+ .object({
1739
+ refundReference: z.string(),
1740
+ transactionReference: z.string(),
1741
+ refundReason: z.string(),
1742
+ customerNote: z.string(),
1743
+ refundAmount: z.number().int(),
1744
+ refundType: z.string(),
1745
+ refundStatus: z.string(),
1746
+ refundStrategy: z.string(),
1747
+ comment: z.string(),
1748
+ createdOn: z.string().datetime({ offset: true }),
1749
+ })
1750
+ .partial()
1751
+ .passthrough();
1752
+ const InitiateRefundSuccessResponse = z
1753
+ .object({
1754
+ requestSuccessful: z.boolean(),
1755
+ responseMessage: z.string(),
1756
+ responseCode: z.string(),
1757
+ responseBody: RefundDetails,
1758
+ })
1759
+ .partial()
1760
+ .passthrough();
1761
+ const GetRefundStatusSuccessResponse = z
1762
+ .object({
1763
+ requestSuccessful: z.boolean(),
1764
+ responseMessage: z.string(),
1765
+ responseCode: z.string(),
1766
+ responseBody: RefundDetails,
1767
+ })
1768
+ .partial()
1769
+ .passthrough();
1770
+ const RefundPage = z
1771
+ .object({
1772
+ content: z.array(RefundDetails),
1773
+ pageable: PageableObject,
1774
+ last: z.boolean(),
1775
+ totalElements: z.number().int(),
1776
+ totalPages: z.number().int(),
1777
+ sort: SortObject,
1778
+ first: z.boolean(),
1779
+ numberOfElements: z.number().int(),
1780
+ size: z.number().int(),
1781
+ number: z.number().int(),
1782
+ empty: z.boolean(),
1783
+ })
1784
+ .partial()
1785
+ .passthrough();
1786
+ const GetAllRefundsSuccessResponse = z
1787
+ .object({
1788
+ requestSuccessful: z.boolean(),
1789
+ responseMessage: z.string(),
1790
+ responseCode: z.string(),
1791
+ responseBody: RefundPage,
1792
+ })
1793
+ .partial()
1794
+ .passthrough();
1795
+ const TransactionDetails = z
1796
+ .object({
1797
+ transactionReference: z.string(),
1798
+ paymentReference: z.string(),
1799
+ amountPaid: z.string(),
1800
+ totalPayable: z.string(),
1801
+ settlementAmount: z.string(),
1802
+ paidOn: z.string(),
1803
+ paymentStatus: z.string(),
1804
+ paymentDescription: z.string(),
1805
+ transactionHash: z.string(),
1806
+ currency: z.string(),
1807
+ paymentMethod: z.string(),
1808
+ product: z
1809
+ .object({ type: z.string(), reference: z.string() })
1810
+ .partial()
1811
+ .passthrough(),
1812
+ cardDetails: z
1813
+ .object({
1814
+ cardType: z.string(),
1815
+ last4: z.string(),
1816
+ expMonth: z.string(),
1817
+ expYear: z.string(),
1818
+ bin: z.string(),
1819
+ bankCode: z.string(),
1820
+ bankName: z.string(),
1821
+ reusable: z.boolean(),
1822
+ countryCode: z.null(),
1823
+ cardToken: z.string(),
1824
+ supportsTokenization: z.boolean(),
1825
+ maskedPan: z.string(),
1826
+ })
1827
+ .partial()
1828
+ .passthrough(),
1829
+ accountDetails: z.null(),
1830
+ accountPayments: z.array(z.object({}).partial().passthrough()),
1831
+ customer: z
1832
+ .object({ email: z.string(), name: z.string() })
1833
+ .partial()
1834
+ .passthrough(),
1835
+ metaData: z.object({}).partial().passthrough(),
1836
+ })
1837
+ .partial()
1838
+ .passthrough();
1839
+ const TransactionPage = z
1840
+ .object({
1841
+ content: z.array(TransactionDetails),
1842
+ pageable: PageableObject,
1843
+ last: z.boolean(),
1844
+ totalElements: z.number().int(),
1845
+ totalPages: z.number().int(),
1846
+ sort: SortObject,
1847
+ first: z.boolean(),
1848
+ numberOfElements: z.number().int(),
1849
+ size: z.number().int(),
1850
+ number: z.number().int(),
1851
+ empty: z.boolean(),
1852
+ })
1853
+ .partial()
1854
+ .passthrough();
1855
+ const GetTransactionsBySettlementReferenceSuccessResponse = z
1856
+ .object({
1857
+ requestSuccessful: z.boolean(),
1858
+ responseMessage: z.string(),
1859
+ responseCode: z.string(),
1860
+ responseBody: TransactionPage,
1861
+ })
1862
+ .partial()
1863
+ .passthrough();
1864
+ const GetSettlementInformationForTransactionSuccessResponse = z
1865
+ .object({
1866
+ requestSuccessful: z.boolean(),
1867
+ responseMessage: z.string(),
1868
+ responseCode: z.string(),
1869
+ responseBody: z
1870
+ .object({
1871
+ transactionReference: z.string(),
1872
+ settlementReference: z.string(),
1873
+ settlementDate: z.string(),
1874
+ settlementAmount: z.number(),
1875
+ currency: z.string(),
1876
+ })
1877
+ .partial()
1878
+ .passthrough(),
1879
+ })
1880
+ .partial()
1881
+ .passthrough();
1882
+ const AccountValidationDetails = z
1883
+ .object({
1884
+ accountNumber: z.string(),
1885
+ accountName: z.string(),
1886
+ bankCode: z.string(),
1887
+ })
1888
+ .partial()
1889
+ .passthrough();
1890
+ const ValidateBankAccountSuccessResponse = z
1891
+ .object({
1892
+ requestSuccessful: z.boolean(),
1893
+ responseMessage: z.string(),
1894
+ responseCode: z.string(),
1895
+ responseBody: AccountValidationDetails,
1896
+ })
1897
+ .partial()
1898
+ .passthrough();
1899
+ const BVNVerificationRequest = z
1900
+ .object({
1901
+ bvn: z.string(),
1902
+ name: z.string(),
1903
+ dateOfBirth: z.string(),
1904
+ mobileNo: z.string(),
1905
+ })
1906
+ .passthrough();
1907
+ const BVNVerificationFailureResponse = z
1908
+ .object({
1909
+ requestSuccessful: z.boolean(),
1910
+ responseMessage: z.string(),
1911
+ responseCode: z.string(),
1912
+ })
1913
+ .partial()
1914
+ .passthrough();
1915
+ const BVNVerificationDetails = z
1916
+ .object({
1917
+ bvn: z.string(),
1918
+ name: z
1919
+ .object({
1920
+ matchStatus: z.enum(["FULL_MATCH", "PARTIAL_MATCH", "NO_MATCH"]),
1921
+ matchPercentage: z.number().int(),
1922
+ })
1923
+ .partial()
1924
+ .passthrough(),
1925
+ dateOfBirth: z.enum(["FULL_MATCH", "NO_MATCH"]),
1926
+ mobileNo: z.enum(["FULL_MATCH", "NO_MATCH"]),
1927
+ })
1928
+ .partial()
1929
+ .passthrough();
1930
+ const BVNVerificationSuccessResponse = z
1931
+ .object({
1932
+ requestSuccessful: z.boolean(),
1933
+ responseMessage: z.string(),
1934
+ responseCode: z.string(),
1935
+ responseBody: BVNVerificationDetails,
1936
+ })
1937
+ .partial()
1938
+ .passthrough();
1939
+ const BVNAccountMatchRequest = z
1940
+ .object({ bankCode: z.string(), accountNumber: z.string(), bvn: z.string() })
1941
+ .passthrough();
1942
+ const BVNAccountMatchFailureResponse = z
1943
+ .object({
1944
+ requestSuccessful: z.boolean(),
1945
+ responseMessage: z.string(),
1946
+ responseCode: z.string(),
1947
+ })
1948
+ .partial()
1949
+ .passthrough();
1950
+ const BVNAccountMatchDetails = z
1951
+ .object({
1952
+ bvn: z.string(),
1953
+ accountNumber: z.string(),
1954
+ accountName: z.string(),
1955
+ matchStatus: z.enum(["FULL_MATCH", "NO_MATCH"]),
1956
+ matchPercentage: z.number().int(),
1957
+ })
1958
+ .partial()
1959
+ .passthrough();
1960
+ const BVNAccountMatchSuccessResponse = z
1961
+ .object({
1962
+ requestSuccessful: z.boolean(),
1963
+ responseMessage: z.string(),
1964
+ responseCode: z.string(),
1965
+ responseBody: BVNAccountMatchDetails,
1966
+ })
1967
+ .partial()
1968
+ .passthrough();
1969
+ const NINVerificationRequest = z.object({ nin: z.string() }).passthrough();
1970
+ const NINVerificationDetails = z
1971
+ .object({
1972
+ nin: z.string(),
1973
+ lastName: z.string(),
1974
+ firstName: z.string(),
1975
+ middleName: z.string(),
1976
+ dateOfBirth: z.string(),
1977
+ gender: z.string(),
1978
+ mobileNumber: z.string(),
1979
+ })
1980
+ .partial()
1981
+ .passthrough();
1982
+ const NINVerificationSuccessResponse = z
1983
+ .object({
1984
+ requestSuccessful: z.boolean(),
1985
+ responseMessage: z.string(),
1986
+ responseCode: z.string(),
1987
+ responseBody: NINVerificationDetails,
1988
+ })
1989
+ .partial()
1990
+ .passthrough();
1991
+ const NINVerificationFailureResponse = z
1992
+ .object({
1993
+ requestSuccessful: z.boolean(),
1994
+ responseMessage: z.string(),
1995
+ responseCode: z.string(),
1996
+ })
1997
+ .partial()
1998
+ .passthrough();
1999
+ const CategoryResponse = z
2000
+ .object({
2001
+ requestSuccessful: z.boolean(),
2002
+ responseMessage: z.string(),
2003
+ responseCode: z.string(),
2004
+ responseBody: z
2005
+ .object({
2006
+ content: z.array(z
2007
+ .object({ code: z.string(), name: z.string() })
2008
+ .partial()
2009
+ .passthrough()),
2010
+ totalElements: z.number().int(),
2011
+ size: z.number().int(),
2012
+ number: z.number().int(),
2013
+ empty: z.boolean(),
2014
+ })
2015
+ .partial()
2016
+ .passthrough(),
2017
+ })
2018
+ .partial()
2019
+ .passthrough();
2020
+ const BillerResponse = z
2021
+ .object({
2022
+ requestSuccessful: z.boolean(),
2023
+ responseMessage: z.string(),
2024
+ responseCode: z.string(),
2025
+ responseBody: z
2026
+ .object({
2027
+ content: z.array(z
2028
+ .object({
2029
+ code: z.string(),
2030
+ name: z.string(),
2031
+ categories: z.array(z
2032
+ .object({ code: z.string(), name: z.string() })
2033
+ .partial()
2034
+ .passthrough()),
2035
+ })
2036
+ .partial()
2037
+ .passthrough()),
2038
+ })
2039
+ .partial()
2040
+ .passthrough(),
2041
+ })
2042
+ .partial()
2043
+ .passthrough();
2044
+ const ProductResponse = z
2045
+ .object({
2046
+ requestSuccessful: z.boolean(),
2047
+ responseMessage: z.string(),
2048
+ responseCode: z.string(),
2049
+ responseBody: z
2050
+ .object({
2051
+ content: z.array(z
2052
+ .object({
2053
+ code: z.string(),
2054
+ name: z.string(),
2055
+ minAmount: z.number().nullable(),
2056
+ maxAmount: z.number().nullable(),
2057
+ price: z.number().nullable(),
2058
+ priceType: z.string(),
2059
+ })
2060
+ .partial()
2061
+ .passthrough()),
2062
+ })
2063
+ .partial()
2064
+ .passthrough(),
2065
+ })
2066
+ .partial()
2067
+ .passthrough();
2068
+ const VendRequest = z
2069
+ .object({
2070
+ productCode: z.string(),
2071
+ customerId: z.string(),
2072
+ validationReference: z.string().optional(),
2073
+ amount: z.number(),
2074
+ emailAddress: z.string().email().optional(),
2075
+ phoneNumber: z.string().optional(),
2076
+ reference: z.string(),
2077
+ })
2078
+ .passthrough();
2079
+ const VendResponse = z
2080
+ .object({
2081
+ requestSuccessful: z.boolean(),
2082
+ responseMessage: z.string(),
2083
+ responseCode: z.string(),
2084
+ responseBody: z
2085
+ .object({
2086
+ vendReference: z.string(),
2087
+ transactionReference: z.string(),
2088
+ vendStatus: z.string(),
2089
+ description: z.string(),
2090
+ vendAmount: z.number(),
2091
+ payableAmount: z.number(),
2092
+ commission: z.number(),
2093
+ customerId: z.string(),
2094
+ productCode: z.string(),
2095
+ productName: z.string(),
2096
+ billerCode: z.string(),
2097
+ billerName: z.string(),
2098
+ })
2099
+ .partial()
2100
+ .passthrough(),
2101
+ })
2102
+ .partial()
2103
+ .passthrough();
2104
+ const RequeryResponse = z
2105
+ .object({
2106
+ requestSuccessful: z.boolean(),
2107
+ responseMessage: z.string(),
2108
+ responseCode: z.string(),
2109
+ responseBody: z
2110
+ .object({
2111
+ transactionReference: z.string(),
2112
+ vendStatus: z.string(),
2113
+ description: z.string(),
2114
+ })
2115
+ .partial()
2116
+ .passthrough(),
2117
+ })
2118
+ .partial()
2119
+ .passthrough();
2120
+ const ValidateCustomerRequest = z
2121
+ .object({ productCode: z.string(), customerId: z.string() })
2122
+ .passthrough();
2123
+ const ValidateCustomerResponse = z
2124
+ .object({
2125
+ requestSuccessful: z.boolean(),
2126
+ responseMessage: z.string(),
2127
+ responseCode: z.string(),
2128
+ responseBody: z
2129
+ .object({
2130
+ customerName: z.string(),
2131
+ priceType: z.string(),
2132
+ price: z.number().nullable(),
2133
+ vendInstruction: z
2134
+ .object({
2135
+ requireValidationRef: z.boolean(),
2136
+ validationReference: z.string(),
2137
+ })
2138
+ .partial()
2139
+ .passthrough(),
2140
+ })
2141
+ .partial()
2142
+ .passthrough(),
2143
+ })
2144
+ .partial()
2145
+ .passthrough();
2146
+ const Bank = z
2147
+ .object({
2148
+ name: z.string(),
2149
+ code: z.string(),
2150
+ ussdTemplate: z.string().nullable(),
2151
+ baseUssdCode: z.string().nullable(),
2152
+ transferUssdTemplate: z.string().nullable(),
2153
+ })
2154
+ .partial()
2155
+ .passthrough();
2156
+ const BankListSuccessResponse = z
2157
+ .object({
2158
+ requestSuccessful: z.boolean(),
2159
+ responseMessage: z.string(),
2160
+ responseCode: z.string(),
2161
+ responseBody: z.array(Bank),
2162
+ })
2163
+ .partial()
2164
+ .passthrough();
2165
+ const CreateWalletRequest = z
2166
+ .object({
2167
+ walletReference: z.string(),
2168
+ walletName: z.string(),
2169
+ customerName: z.string(),
2170
+ customerEmail: z.string(),
2171
+ bvnDetails: z
2172
+ .object({ bvn: z.number().int(), bvnDateOfBirth: z.string() })
2173
+ .partial()
2174
+ .passthrough(),
2175
+ })
2176
+ .partial()
2177
+ .passthrough();
2178
+ const CreateWalletSuccessResponse = z
2179
+ .object({
2180
+ requestSuccessful: z.boolean(),
2181
+ responseMessage: z.string(),
2182
+ responseCode: z.string(),
2183
+ responseBody: z
2184
+ .object({
2185
+ walletName: z.string(),
2186
+ walletReference: z.string(),
2187
+ customerName: z.string(),
2188
+ customerEmail: z.string(),
2189
+ feeBearer: z.string(),
2190
+ bvnDetails: z
2191
+ .object({ bvn: z.number().int(), bvnDateOfBirth: z.string() })
2192
+ .partial()
2193
+ .passthrough(),
2194
+ accountNumber: z.string(),
2195
+ accountName: z.string(),
2196
+ topUpAccountDetails: z
2197
+ .object({
2198
+ accountNumber: z.string(),
2199
+ accountName: z.string(),
2200
+ bankCode: z.string(),
2201
+ bankName: z.string(),
2202
+ createdOn: z.string().datetime({ offset: true }),
2203
+ })
2204
+ .partial()
2205
+ .passthrough(),
2206
+ })
2207
+ .partial()
2208
+ .passthrough(),
2209
+ })
2210
+ .partial()
2211
+ .passthrough();
2212
+ const Wallet = z
2213
+ .object({
2214
+ walletName: z.string(),
2215
+ walletReference: z.string(),
2216
+ customerName: z.string(),
2217
+ customerEmail: z.string(),
2218
+ feeBearer: z.string(),
2219
+ bvnDetails: z
2220
+ .object({ bvn: z.number().int(), bvnDateOfBirth: z.string() })
2221
+ .partial()
2222
+ .passthrough(),
2223
+ accountNumber: z.string(),
2224
+ accountName: z.string(),
2225
+ topUpAccountDetails: z
2226
+ .object({
2227
+ accountNumber: z.string(),
2228
+ accountName: z.string(),
2229
+ bankCode: z.string(),
2230
+ bankName: z.string(),
2231
+ })
2232
+ .partial()
2233
+ .passthrough(),
2234
+ createdOn: z.string().datetime({ offset: true }),
2235
+ })
2236
+ .partial()
2237
+ .passthrough();
2238
+ const GetWalletsResponse = z
2239
+ .object({
2240
+ requestSuccessful: z.boolean(),
2241
+ responseMessage: z.string(),
2242
+ responseCode: z.string(),
2243
+ responseBody: z
2244
+ .object({
2245
+ content: z.array(Wallet),
2246
+ pageable: z
2247
+ .object({
2248
+ sort: z
2249
+ .object({
2250
+ empty: z.boolean(),
2251
+ sorted: z.boolean(),
2252
+ unsorted: z.boolean(),
2253
+ })
2254
+ .partial()
2255
+ .passthrough(),
2256
+ offset: z.number().int(),
2257
+ pageNumber: z.number().int(),
2258
+ pageSize: z.number().int(),
2259
+ paged: z.boolean(),
2260
+ unpaged: z.boolean(),
2261
+ })
2262
+ .partial()
2263
+ .passthrough(),
2264
+ last: z.boolean(),
2265
+ totalElements: z.number().int(),
2266
+ totalPages: z.number().int(),
2267
+ size: z.number().int(),
2268
+ number: z.number().int(),
2269
+ sort: z
2270
+ .object({
2271
+ empty: z.boolean(),
2272
+ sorted: z.boolean(),
2273
+ unsorted: z.boolean(),
2274
+ })
2275
+ .partial()
2276
+ .passthrough(),
2277
+ first: z.boolean(),
2278
+ numberOfElements: z.number().int(),
2279
+ empty: z.boolean(),
2280
+ })
2281
+ .partial()
2282
+ .passthrough(),
2283
+ })
2284
+ .partial()
2285
+ .passthrough();
2286
+ const WalletBalanceResponse = z
2287
+ .object({
2288
+ requestSuccessful: z.boolean(),
2289
+ responseMessage: z.string(),
2290
+ responseCode: z.string(),
2291
+ responseBody: z
2292
+ .object({
2293
+ availableBalance: z.number().int(),
2294
+ ledgerBalance: z.number().int(),
2295
+ })
2296
+ .partial()
2297
+ .passthrough(),
2298
+ })
2299
+ .partial()
2300
+ .passthrough();
2301
+ const WalletTransactions = z
2302
+ .object({
2303
+ walletTransactionReference: z.string(),
2304
+ monnifyTransactionReference: z.string(),
2305
+ availableBalanceBefore: z.number(),
2306
+ availableBalanceAfter: z.number(),
2307
+ amount: z.number(),
2308
+ transactionDate: z.string().datetime({ offset: true }),
2309
+ transactionType: z.string(),
2310
+ message: z.string().nullable(),
2311
+ narration: z.string(),
2312
+ status: z.string(),
2313
+ })
2314
+ .partial()
2315
+ .passthrough();
2316
+ const WalletTransactionsResponse = z
2317
+ .object({
2318
+ requestSuccessful: z.boolean(),
2319
+ responseMessage: z.string(),
2320
+ responseCode: z.string(),
2321
+ responseBody: z
2322
+ .object({
2323
+ content: z.array(WalletTransactions),
2324
+ pageable: z
2325
+ .object({
2326
+ sort: z
2327
+ .object({
2328
+ empty: z.boolean(),
2329
+ sorted: z.boolean(),
2330
+ unsorted: z.boolean(),
2331
+ })
2332
+ .partial()
2333
+ .passthrough(),
2334
+ offset: z.number().int(),
2335
+ pageNumber: z.number().int(),
2336
+ pageSize: z.number().int(),
2337
+ paged: z.boolean(),
2338
+ unpaged: z.boolean(),
2339
+ })
2340
+ .partial()
2341
+ .passthrough(),
2342
+ last: z.boolean(),
2343
+ totalElements: z.number().int(),
2344
+ totalPages: z.number().int(),
2345
+ size: z.number().int(),
2346
+ number: z.number().int(),
2347
+ sort: z
2348
+ .object({
2349
+ empty: z.boolean(),
2350
+ sorted: z.boolean(),
2351
+ unsorted: z.boolean(),
2352
+ })
2353
+ .partial()
2354
+ .passthrough(),
2355
+ first: z.boolean(),
2356
+ numberOfElements: z.number().int(),
2357
+ empty: z.boolean(),
2358
+ })
2359
+ .partial()
2360
+ .passthrough(),
2361
+ })
2362
+ .partial()
2363
+ .passthrough();
2364
+ const CreatePaycodeRequest = z
2365
+ .object({
2366
+ beneficiaryName: z.string(),
2367
+ amount: z.number(),
2368
+ paycodeReference: z.string(),
2369
+ expiryDate: z.string(),
2370
+ clientId: z.string(),
2371
+ })
2372
+ .passthrough();
2373
+ const PaycodeDetails = z
2374
+ .object({
2375
+ paycode: z.string(),
2376
+ transactionReference: z.string(),
2377
+ paycodeReference: z.string(),
2378
+ beneficiaryName: z.string(),
2379
+ amount: z.number(),
2380
+ fee: z.number().int(),
2381
+ transactionStatus: z.string(),
2382
+ expiryDate: z.string(),
2383
+ createdOn: z.string().datetime({ offset: true }),
2384
+ createdBy: z.string(),
2385
+ modifiedBy: z.string(),
2386
+ })
2387
+ .partial()
2388
+ .passthrough();
2389
+ const CreatePaycodeSuccessResponse = z
2390
+ .object({
2391
+ responseMessage: z.string(),
2392
+ responseCode: z.string(),
2393
+ responseBody: PaycodeDetails,
2394
+ })
2395
+ .partial()
2396
+ .passthrough();
2397
+ const PaycodeHistory = z
2398
+ .object({
2399
+ content: z.array(PaycodeDetails),
2400
+ pageable: Pageable,
2401
+ last: z.boolean(),
2402
+ totalPages: z.number().int(),
2403
+ totalElements: z.number().int(),
2404
+ sort: Sort,
2405
+ first: z.boolean(),
2406
+ numberOfElements: z.number().int(),
2407
+ size: z.number().int(),
2408
+ number: z.number().int(),
2409
+ empty: z.boolean(),
2410
+ })
2411
+ .partial()
2412
+ .passthrough();
2413
+ const FetchPaycodesSuccessResponse = z
2414
+ .object({
2415
+ responseMessage: z.string(),
2416
+ responseCode: z.string(),
2417
+ responseBody: PaycodeHistory,
2418
+ })
2419
+ .partial()
2420
+ .passthrough();
2421
+ const GetPaycodeSuccessResponse = z
2422
+ .object({
2423
+ responseMessage: z.string(),
2424
+ responseCode: z.string(),
2425
+ responseBody: PaycodeDetails,
2426
+ })
2427
+ .partial()
2428
+ .passthrough();
2429
+ export const schemas = {
2430
+ AuthResponseSuccess,
2431
+ AuthResponseError,
2432
+ AuthResponseNoHeaderError,
2433
+ InitializeTransactionRequest,
2434
+ InitializeTransactionSuccessResponse,
2435
+ ErrorResponse,
2436
+ InitBankTransferPaymentRequest,
2437
+ InitBankTransferPaymentSuccessResponse,
2438
+ CardInfo,
2439
+ DeviceInformation,
2440
+ ChargeRequest,
2441
+ ChargeResponse,
2442
+ AuthorizeOTPRequest,
2443
+ AuthorizeOTPSuccessResponse,
2444
+ Authorize3DSCardRequest,
2445
+ Authorize3DSCardSuccessResponse,
2446
+ TransactionSearchResponse,
2447
+ TransactionStatusResponse,
2448
+ InitiateTransferRequest,
2449
+ InitiateTransferOTPResponse,
2450
+ InitiateTransferSuccessResponse,
2451
+ InitiateBulkTransferRequest,
2452
+ InitiateBulkTransferSuccessResponse,
2453
+ AuthorizeTransferRequest,
2454
+ ResendOTPRequest,
2455
+ ResendOTPSuccessResponse,
2456
+ ResendOTPRequestBulk,
2457
+ ResendOTPSuccessResponseBulk,
2458
+ SingleTransferStatusResponse,
2459
+ SingleTransferDetails,
2460
+ ListSingleTransfersResponse,
2461
+ BulkTransferDetails,
2462
+ ListBulkTransfersResponse,
2463
+ BulkTransferTransactionsResponse,
2464
+ BulkBatchSummaryResponse,
2465
+ DisbursementTransactionDetails,
2466
+ SearchDisbursementTransactionsResponse,
2467
+ GetWalletBalanceResponse,
2468
+ IncomeSplitConfig,
2469
+ BankAccount,
2470
+ AllowedPaymentSources,
2471
+ CreateReservedAccountRequest,
2472
+ Account,
2473
+ IncomeSplitConfigResponse,
2474
+ ReservedAccountDetails,
2475
+ CreateReservedAccountResponse,
2476
+ CreateInvoiceReservedAccountRequest,
2477
+ InvoiceReservedAccountDetails,
2478
+ CreateInvoiceReservedAccountSuccessResponse,
2479
+ GetReservedAccountDetailsSuccessResponse,
2480
+ AddLinkedAccountsRequest,
2481
+ LinkedAccountDetails,
2482
+ AddLinkedAccountsSuccessResponse,
2483
+ UpdateBvnRequest,
2484
+ UpdatedBvnAccountDetails,
2485
+ UpdateBvnSuccessResponse,
2486
+ AllowedPaymentSourcesRequest,
2487
+ AllowedPaymentSourcesDetails,
2488
+ AllowedPaymentSourcesSuccessResponse,
2489
+ UpdateSplitConfigRequestItem,
2490
+ SplitConfigDetail,
2491
+ UpdatedSplitConfigDetails,
2492
+ UpdateSplitConfigSuccessResponse,
2493
+ DeallocatedAccountDetails,
2494
+ DeallocateAccountSuccessResponse,
2495
+ CustomerDTO,
2496
+ Transaction,
2497
+ Sort,
2498
+ Pageable,
2499
+ TransactionsResponseBody,
2500
+ GetTransactionsSuccessResponse,
2501
+ UpdateKycInfoRequest,
2502
+ UpdatedKycInfoDetails,
2503
+ UpdateKycInfoSuccessResponse,
2504
+ CreateInvoiceRequest,
2505
+ InvoiceSplitConfig,
2506
+ InvoiceDetails,
2507
+ CreateInvoiceSuccessResponse,
2508
+ ViewInvoiceDetailsSuccessResponse,
2509
+ InvoiceListItem,
2510
+ InvoiceList,
2511
+ GetAllInvoicesSuccessResponse,
2512
+ CancelledInvoiceDetails,
2513
+ CancelInvoiceSuccessResponse,
2514
+ MetaData,
2515
+ ChargeCardTokenRequest,
2516
+ Product,
2517
+ CardDetails,
2518
+ CustomerDetails,
2519
+ ChargeCardTokenResponseBody,
2520
+ ChargeCardTokenSuccessResponse,
2521
+ CreateMandateRequest,
2522
+ MandateCreationResponseBody,
2523
+ CreateMandateSuccessResponse,
2524
+ MandateStatusDetails,
2525
+ GetMandateStatusSuccessResponse,
2526
+ DebitMandateRequest,
2527
+ DebitMandateResponseBody,
2528
+ DebitMandateSuccessResponse,
2529
+ DebitStatusDetails,
2530
+ GetDebitStatusSuccessResponse,
2531
+ UpdateMandateResponseBody,
2532
+ UpdateMandateSuccessResponse,
2533
+ CreateSubAccountRequest,
2534
+ SubAccountDetails,
2535
+ CreateSubAccountSuccessResponse,
2536
+ GetSubAccountsSuccessResponse,
2537
+ UpdateSubAccountRequest,
2538
+ UpdateSubAccountSuccessResponse,
2539
+ DeleteSubAccountSuccessResponse,
2540
+ CreateLimitProfileRequest,
2541
+ LimitProfileDetails,
2542
+ CreateLimitProfileSuccessResponse,
2543
+ SortObject,
2544
+ PageableObject,
2545
+ LimitProfilePage,
2546
+ GetLimitProfilesSuccessResponse,
2547
+ UpdateLimitProfileRequest,
2548
+ UpdateLimitProfileSuccessResponse,
2549
+ ReserveAccountWithLimitRequest,
2550
+ LimitProfileConfigDetails,
2551
+ ReservedAccountDetailsWithLimit,
2552
+ ReserveAccountWithLimitSuccessResponse,
2553
+ UpdateReserveAccountLimitRequest,
2554
+ UpdateReserveAccountLimitSuccessResponse,
2555
+ InitiateRefundRequest,
2556
+ RefundDetails,
2557
+ InitiateRefundSuccessResponse,
2558
+ GetRefundStatusSuccessResponse,
2559
+ RefundPage,
2560
+ GetAllRefundsSuccessResponse,
2561
+ TransactionDetails,
2562
+ TransactionPage,
2563
+ GetTransactionsBySettlementReferenceSuccessResponse,
2564
+ GetSettlementInformationForTransactionSuccessResponse,
2565
+ AccountValidationDetails,
2566
+ ValidateBankAccountSuccessResponse,
2567
+ BVNVerificationRequest,
2568
+ BVNVerificationFailureResponse,
2569
+ BVNVerificationDetails,
2570
+ BVNVerificationSuccessResponse,
2571
+ BVNAccountMatchRequest,
2572
+ BVNAccountMatchFailureResponse,
2573
+ BVNAccountMatchDetails,
2574
+ BVNAccountMatchSuccessResponse,
2575
+ NINVerificationRequest,
2576
+ NINVerificationDetails,
2577
+ NINVerificationSuccessResponse,
2578
+ NINVerificationFailureResponse,
2579
+ CategoryResponse,
2580
+ BillerResponse,
2581
+ ProductResponse,
2582
+ VendRequest,
2583
+ VendResponse,
2584
+ RequeryResponse,
2585
+ ValidateCustomerRequest,
2586
+ ValidateCustomerResponse,
2587
+ Bank,
2588
+ BankListSuccessResponse,
2589
+ CreateWalletRequest,
2590
+ CreateWalletSuccessResponse,
2591
+ Wallet,
2592
+ GetWalletsResponse,
2593
+ WalletBalanceResponse,
2594
+ WalletTransactions,
2595
+ WalletTransactionsResponse,
2596
+ CreatePaycodeRequest,
2597
+ PaycodeDetails,
2598
+ CreatePaycodeSuccessResponse,
2599
+ PaycodeHistory,
2600
+ FetchPaycodesSuccessResponse,
2601
+ GetPaycodeSuccessResponse,
2602
+ };
2603
+ //# sourceMappingURL=generated.js.map