bitpesa-sdk 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (633) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +8 -0
  3. data/Gemfile.lock +92 -0
  4. data/LICENSE +7 -0
  5. data/README.md +264 -0
  6. data/Rakefile +10 -0
  7. data/bitpesa-sdk.gemspec +46 -0
  8. data/docs/APILogsApi.md +141 -0
  9. data/docs/Account.md +9 -0
  10. data/docs/AccountBase.md +9 -0
  11. data/docs/AccountDebitsApi.md +199 -0
  12. data/docs/AccountListResponse.md +9 -0
  13. data/docs/AccountMeta.md +8 -0
  14. data/docs/AccountResponse.md +9 -0
  15. data/docs/AccountValidationApi.md +70 -0
  16. data/docs/AccountValidationError.md +8 -0
  17. data/docs/AccountValidationRequest.md +12 -0
  18. data/docs/AccountValidationResponse.md +9 -0
  19. data/docs/AccountValidationResult.md +8 -0
  20. data/docs/AccountsApi.md +128 -0
  21. data/docs/ApiLog.md +16 -0
  22. data/docs/ApiLogBase.md +16 -0
  23. data/docs/ApiLogListResponse.md +9 -0
  24. data/docs/ApiLogResponse.md +8 -0
  25. data/docs/Body.md +12 -0
  26. data/docs/Currency.md +17 -0
  27. data/docs/CurrencyBase.md +17 -0
  28. data/docs/CurrencyExchange.md +18 -0
  29. data/docs/CurrencyExchangeListResponse.md +8 -0
  30. data/docs/CurrencyInfoApi.md +182 -0
  31. data/docs/CurrencyListResponse.md +8 -0
  32. data/docs/CurrencyOpposite.md +18 -0
  33. data/docs/Debit.md +17 -0
  34. data/docs/DebitBase.md +12 -0
  35. data/docs/DebitErrorResponse.md +13 -0
  36. data/docs/DebitListRequest.md +8 -0
  37. data/docs/DebitListResponse.md +9 -0
  38. data/docs/DebitRequest.md +8 -0
  39. data/docs/DebitRequestWrapper.md +8 -0
  40. data/docs/DebitResponse.md +8 -0
  41. data/docs/DebitValidResponse.md +16 -0
  42. data/docs/DefaultDocument.md +16 -0
  43. data/docs/DefaultRecipient.md +11 -0
  44. data/docs/DefaultSender.md +24 -0
  45. data/docs/DefaultWebhook.md +11 -0
  46. data/docs/Document.md +17 -0
  47. data/docs/DocumentBase.md +15 -0
  48. data/docs/DocumentErrorResponse.md +16 -0
  49. data/docs/DocumentListResponse.md +9 -0
  50. data/docs/DocumentRequest.md +8 -0
  51. data/docs/DocumentResponse.md +8 -0
  52. data/docs/DocumentValidResponse.md +16 -0
  53. data/docs/DocumentWebhook.md +10 -0
  54. data/docs/DocumentsApi.md +199 -0
  55. data/docs/ErrorStatus.md +9 -0
  56. data/docs/FieldDescription.md +9 -0
  57. data/docs/FieldSelectValidation.md +9 -0
  58. data/docs/FieldValidation.md +10 -0
  59. data/docs/FullInvalidTransaction.md +12 -0
  60. data/docs/FullInvalidTransactionRequest.md +14 -0
  61. data/docs/FullValidTransaction.md +11 -0
  62. data/docs/FullValidTransactionRequest.md +12 -0
  63. data/docs/InlineResponse200.md +9 -0
  64. data/docs/InlineResponse2001.md +8 -0
  65. data/docs/InlineResponse20010.md +9 -0
  66. data/docs/InlineResponse20011.md +9 -0
  67. data/docs/InlineResponse20012.md +8 -0
  68. data/docs/InlineResponse20013.md +9 -0
  69. data/docs/InlineResponse20014.md +9 -0
  70. data/docs/InlineResponse20015.md +8 -0
  71. data/docs/InlineResponse20016.md +9 -0
  72. data/docs/InlineResponse20017.md +8 -0
  73. data/docs/InlineResponse20018.md +9 -0
  74. data/docs/InlineResponse20019.md +9 -0
  75. data/docs/InlineResponse2002.md +9 -0
  76. data/docs/InlineResponse20020.md +9 -0
  77. data/docs/InlineResponse20021.md +8 -0
  78. data/docs/InlineResponse20021Object.md +8 -0
  79. data/docs/InlineResponse20022.md +8 -0
  80. data/docs/InlineResponse20022Object.md +8 -0
  81. data/docs/InlineResponse20023.md +9 -0
  82. data/docs/InlineResponse20023Object.md +8 -0
  83. data/docs/InlineResponse20024.md +8 -0
  84. data/docs/InlineResponse20025.md +8 -0
  85. data/docs/InlineResponse20026.md +8 -0
  86. data/docs/InlineResponse20027.md +9 -0
  87. data/docs/InlineResponse20028.md +8 -0
  88. data/docs/InlineResponse20029.md +9 -0
  89. data/docs/InlineResponse2002Object.md +8 -0
  90. data/docs/InlineResponse2003.md +8 -0
  91. data/docs/InlineResponse20030.md +8 -0
  92. data/docs/InlineResponse20031.md +9 -0
  93. data/docs/InlineResponse20032.md +9 -0
  94. data/docs/InlineResponse20033.md +8 -0
  95. data/docs/InlineResponse20034.md +9 -0
  96. data/docs/InlineResponse20035.md +9 -0
  97. data/docs/InlineResponse20036.md +8 -0
  98. data/docs/InlineResponse20037.md +9 -0
  99. data/docs/InlineResponse20038.md +8 -0
  100. data/docs/InlineResponse20039.md +9 -0
  101. data/docs/InlineResponse2004.md +8 -0
  102. data/docs/InlineResponse20040.md +8 -0
  103. data/docs/InlineResponse2004Object.md +8 -0
  104. data/docs/InlineResponse2005.md +8 -0
  105. data/docs/InlineResponse2006.md +9 -0
  106. data/docs/InlineResponse2007.md +8 -0
  107. data/docs/InlineResponse2008.md +9 -0
  108. data/docs/InlineResponse2009.md +8 -0
  109. data/docs/InlineResponse201.md +8 -0
  110. data/docs/InlineResponse2011.md +8 -0
  111. data/docs/InlineResponse20110.md +8 -0
  112. data/docs/InlineResponse20111.md +8 -0
  113. data/docs/InlineResponse2012.md +8 -0
  114. data/docs/InlineResponse2013.md +8 -0
  115. data/docs/InlineResponse2014.md +8 -0
  116. data/docs/InlineResponse2015.md +8 -0
  117. data/docs/InlineResponse2016.md +8 -0
  118. data/docs/InlineResponse2017.md +8 -0
  119. data/docs/InlineResponse2018.md +8 -0
  120. data/docs/InlineResponse2019.md +8 -0
  121. data/docs/InlineResponse400.md +9 -0
  122. data/docs/InlineResponse4001.md +9 -0
  123. data/docs/InlineResponse422.md +8 -0
  124. data/docs/InlineResponse4221.md +8 -0
  125. data/docs/InlineResponse42210.md +8 -0
  126. data/docs/InlineResponse42211.md +8 -0
  127. data/docs/InlineResponse42212.md +8 -0
  128. data/docs/InlineResponse42213.md +8 -0
  129. data/docs/InlineResponse42214.md +8 -0
  130. data/docs/InlineResponse4221Meta.md +8 -0
  131. data/docs/InlineResponse4221Object.md +8 -0
  132. data/docs/InlineResponse4222.md +8 -0
  133. data/docs/InlineResponse4223.md +8 -0
  134. data/docs/InlineResponse4224.md +8 -0
  135. data/docs/InlineResponse4225.md +8 -0
  136. data/docs/InlineResponse4226.md +8 -0
  137. data/docs/InlineResponse4227.md +8 -0
  138. data/docs/InlineResponse4227Meta.md +8 -0
  139. data/docs/InlineResponse4228.md +8 -0
  140. data/docs/InlineResponse4228Meta.md +8 -0
  141. data/docs/InlineResponse4228Object.md +8 -0
  142. data/docs/InlineResponse4229.md +8 -0
  143. data/docs/InlineResponse422Meta.md +8 -0
  144. data/docs/InlineResponse422Object.md +8 -0
  145. data/docs/InvalidDebit.md +14 -0
  146. data/docs/InvalidDocument.md +17 -0
  147. data/docs/InvalidRecipient.md +12 -0
  148. data/docs/InvalidSender.md +25 -0
  149. data/docs/InvalidWebhook.md +11 -0
  150. data/docs/LogsApi.md +141 -0
  151. data/docs/Meta.md +8 -0
  152. data/docs/Meta2.md +8 -0
  153. data/docs/Meta2Pagination.md +12 -0
  154. data/docs/MetaPagination.md +12 -0
  155. data/docs/Object.md +9 -0
  156. data/docs/OppositePaymentMethod.md +13 -0
  157. data/docs/OppositePaymentMethodBase.md +13 -0
  158. data/docs/Pagination.md +12 -0
  159. data/docs/PaginationMeta.md +8 -0
  160. data/docs/PaginationPagination.md +12 -0
  161. data/docs/PayinMethod.md +12 -0
  162. data/docs/PayinMethodBase.md +12 -0
  163. data/docs/PayinMethodDetails.md +10 -0
  164. data/docs/PayinMethodDetailsBase.md +7 -0
  165. data/docs/PayinMethodDetailsMobile.md +9 -0
  166. data/docs/PayinMethodDetailsNGNBank.md +8 -0
  167. data/docs/PayinMethodRequest.md +8 -0
  168. data/docs/PayinMethodType.md +8 -0
  169. data/docs/PayinMethodTypeBase.md +8 -0
  170. data/docs/PaymentMethod.md +13 -0
  171. data/docs/PaymentMethodBase.md +15 -0
  172. data/docs/PaymentMethodListResponse.md +8 -0
  173. data/docs/PaymentMethodOpposite.md +14 -0
  174. data/docs/PaymentMethodsApi.md +124 -0
  175. data/docs/PayoutMethod.md +13 -0
  176. data/docs/PayoutMethodBankAccountTypeEnum.md +7 -0
  177. data/docs/PayoutMethodBase.md +10 -0
  178. data/docs/PayoutMethodDetails.md +26 -0
  179. data/docs/PayoutMethodDetailsBalance.md +8 -0
  180. data/docs/PayoutMethodDetailsBase.md +7 -0
  181. data/docs/PayoutMethodDetailsGHSBank.md +11 -0
  182. data/docs/PayoutMethodDetailsIBAN.md +12 -0
  183. data/docs/PayoutMethodDetailsMADCash.md +18 -0
  184. data/docs/PayoutMethodDetailsMobile.md +10 -0
  185. data/docs/PayoutMethodDetailsNGNBank.md +12 -0
  186. data/docs/PayoutMethodDetailsXOFMobile.md +11 -0
  187. data/docs/PayoutMethodErrorResponse.md +11 -0
  188. data/docs/PayoutMethodGenderEnum.md +7 -0
  189. data/docs/PayoutMethodIdentityCardTypeEnum.md +7 -0
  190. data/docs/PayoutMethodListResponse.md +9 -0
  191. data/docs/PayoutMethodMobileProviderEnum.md +7 -0
  192. data/docs/PayoutMethodRequest.md +8 -0
  193. data/docs/PayoutMethodResponse.md +8 -0
  194. data/docs/PayoutMethodValidResponse.md +11 -0
  195. data/docs/PayoutMethodWebhook.md +10 -0
  196. data/docs/PayoutMethodsApi.md +334 -0
  197. data/docs/Recipient.md +27 -0
  198. data/docs/RecipientBase.md +11 -0
  199. data/docs/RecipientErrorResponse.md +26 -0
  200. data/docs/RecipientListResponse.md +9 -0
  201. data/docs/RecipientRequest.md +8 -0
  202. data/docs/RecipientResponse.md +8 -0
  203. data/docs/RecipientState.md +7 -0
  204. data/docs/RecipientValidResponse.md +26 -0
  205. data/docs/RecipientWebhook.md +10 -0
  206. data/docs/RecipientsApi.md +212 -0
  207. data/docs/Sender.md +32 -0
  208. data/docs/SenderBase.md +30 -0
  209. data/docs/SenderErrorResponse.md +32 -0
  210. data/docs/SenderExistingRequest.md +8 -0
  211. data/docs/SenderFullRequest.md +30 -0
  212. data/docs/SenderListResponse.md +9 -0
  213. data/docs/SenderRequest.md +8 -0
  214. data/docs/SenderResponse.md +8 -0
  215. data/docs/SenderState.md +7 -0
  216. data/docs/SenderValidResponse.md +32 -0
  217. data/docs/SenderWebhook.md +10 -0
  218. data/docs/SendersApi.md +328 -0
  219. data/docs/Transaction.md +22 -0
  220. data/docs/TransactionBase.md +13 -0
  221. data/docs/TransactionErrorResponse.md +21 -0
  222. data/docs/TransactionListResponse.md +9 -0
  223. data/docs/TransactionRequest.md +8 -0
  224. data/docs/TransactionRequestBase.md +9 -0
  225. data/docs/TransactionRequestErrorResponse.md +10 -0
  226. data/docs/TransactionRequestRequest.md +9 -0
  227. data/docs/TransactionRequestValidResponse.md +10 -0
  228. data/docs/TransactionRequestsApi.md +199 -0
  229. data/docs/TransactionResponse.md +8 -0
  230. data/docs/TransactionState.md +7 -0
  231. data/docs/TransactionTraits.md +9 -0
  232. data/docs/TransactionValidResponse.md +21 -0
  233. data/docs/TransactionWebhook.md +10 -0
  234. data/docs/TransactionsApi.md +448 -0
  235. data/docs/ValidDebit.md +16 -0
  236. data/docs/ValidationErrorDescription.md +8 -0
  237. data/docs/Webhook.md +10 -0
  238. data/docs/WebhookBase.md +10 -0
  239. data/docs/WebhookDefinition.md +12 -0
  240. data/docs/WebhookDefinitionBase.md +10 -0
  241. data/docs/WebhookDefinitionErrorResponse.md +11 -0
  242. data/docs/WebhookDefinitionEventListResponse.md +8 -0
  243. data/docs/WebhookDefinitionListResponse.md +9 -0
  244. data/docs/WebhookDefinitionRequest.md +8 -0
  245. data/docs/WebhookDefinitionResponse.md +8 -0
  246. data/docs/WebhookDefinitionValidResponse.md +11 -0
  247. data/docs/WebhookErrorResponse.md +11 -0
  248. data/docs/WebhookLog.md +13 -0
  249. data/docs/WebhookLogBase.md +13 -0
  250. data/docs/WebhookLogBaseMetadata.md +17 -0
  251. data/docs/WebhookLogBaseMetadataParams.md +8 -0
  252. data/docs/WebhookLogBaseMetadataRequest.md +10 -0
  253. data/docs/WebhookLogBaseMetadataResponse.md +10 -0
  254. data/docs/WebhookLogListResponse.md +9 -0
  255. data/docs/WebhookLogMetadata.md +17 -0
  256. data/docs/WebhookLogMetadataParams.md +8 -0
  257. data/docs/WebhookLogMetadataRequest.md +10 -0
  258. data/docs/WebhookLogMetadataResponse.md +10 -0
  259. data/docs/WebhookLogResponse.md +8 -0
  260. data/docs/WebhookRequest.md +10 -0
  261. data/docs/WebhookValidResponse.md +11 -0
  262. data/docs/WebhooksApi.md +319 -0
  263. data/example/.LICENSE.un~ +0 -0
  264. data/example/.client.rb.un~ +0 -0
  265. data/example/client.rb +395 -0
  266. data/git_push.sh +55 -0
  267. data/lib/bitpesa-sdk/api/account_debits_api.rb +187 -0
  268. data/lib/bitpesa-sdk/api/account_validation_api.rb +79 -0
  269. data/lib/bitpesa-sdk/api/accounts_api.rb +135 -0
  270. data/lib/bitpesa-sdk/api/api_logs_api.rb +137 -0
  271. data/lib/bitpesa-sdk/api/currency_info_api.rb +167 -0
  272. data/lib/bitpesa-sdk/api/documents_api.rb +197 -0
  273. data/lib/bitpesa-sdk/api/logs_api.rb +137 -0
  274. data/lib/bitpesa-sdk/api/payment_methods_api.rb +119 -0
  275. data/lib/bitpesa-sdk/api/payout_methods_api.rb +321 -0
  276. data/lib/bitpesa-sdk/api/recipients_api.rb +221 -0
  277. data/lib/bitpesa-sdk/api/senders_api.rb +319 -0
  278. data/lib/bitpesa-sdk/api/transactions_api.rb +425 -0
  279. data/lib/bitpesa-sdk/api/webhooks_api.rb +299 -0
  280. data/lib/bitpesa-sdk/api_client.rb +449 -0
  281. data/lib/bitpesa-sdk/api_error.rb +61 -0
  282. data/lib/bitpesa-sdk/configuration.rb +220 -0
  283. data/lib/bitpesa-sdk/models/account.rb +206 -0
  284. data/lib/bitpesa-sdk/models/account_list_response.rb +206 -0
  285. data/lib/bitpesa-sdk/models/account_meta.rb +196 -0
  286. data/lib/bitpesa-sdk/models/account_response.rb +204 -0
  287. data/lib/bitpesa-sdk/models/account_validation_error.rb +196 -0
  288. data/lib/bitpesa-sdk/models/account_validation_request.rb +319 -0
  289. data/lib/bitpesa-sdk/models/account_validation_response.rb +204 -0
  290. data/lib/bitpesa-sdk/models/account_validation_result.rb +196 -0
  291. data/lib/bitpesa-sdk/models/api_log.rb +281 -0
  292. data/lib/bitpesa-sdk/models/api_log_list_response.rb +207 -0
  293. data/lib/bitpesa-sdk/models/api_log_response.rb +195 -0
  294. data/lib/bitpesa-sdk/models/currency.rb +286 -0
  295. data/lib/bitpesa-sdk/models/currency_exchange.rb +305 -0
  296. data/lib/bitpesa-sdk/models/currency_exchange_list_response.rb +198 -0
  297. data/lib/bitpesa-sdk/models/currency_list_response.rb +198 -0
  298. data/lib/bitpesa-sdk/models/currency_opposite.rb +303 -0
  299. data/lib/bitpesa-sdk/models/debit.rb +303 -0
  300. data/lib/bitpesa-sdk/models/debit_list_request.rb +197 -0
  301. data/lib/bitpesa-sdk/models/debit_list_response.rb +206 -0
  302. data/lib/bitpesa-sdk/models/debit_request.rb +195 -0
  303. data/lib/bitpesa-sdk/models/debit_request_wrapper.rb +221 -0
  304. data/lib/bitpesa-sdk/models/debit_response.rb +195 -0
  305. data/lib/bitpesa-sdk/models/document.rb +329 -0
  306. data/lib/bitpesa-sdk/models/document_list_response.rb +206 -0
  307. data/lib/bitpesa-sdk/models/document_request.rb +195 -0
  308. data/lib/bitpesa-sdk/models/document_response.rb +195 -0
  309. data/lib/bitpesa-sdk/models/document_webhook.rb +237 -0
  310. data/lib/bitpesa-sdk/models/error_status.rb +204 -0
  311. data/lib/bitpesa-sdk/models/field_description.rb +239 -0
  312. data/lib/bitpesa-sdk/models/field_select_validation.rb +206 -0
  313. data/lib/bitpesa-sdk/models/field_validation.rb +215 -0
  314. data/lib/bitpesa-sdk/models/pagination.rb +236 -0
  315. data/lib/bitpesa-sdk/models/pagination_meta.rb +195 -0
  316. data/lib/bitpesa-sdk/models/payin_method.rb +236 -0
  317. data/lib/bitpesa-sdk/models/payin_method_details.rb +251 -0
  318. data/lib/bitpesa-sdk/models/payin_method_details_mobile.rb +212 -0
  319. data/lib/bitpesa-sdk/models/payin_method_details_ngn_bank.rb +202 -0
  320. data/lib/bitpesa-sdk/models/payin_method_request.rb +195 -0
  321. data/lib/bitpesa-sdk/models/payment_method.rb +251 -0
  322. data/lib/bitpesa-sdk/models/payment_method_list_response.rb +197 -0
  323. data/lib/bitpesa-sdk/models/payment_method_opposite.rb +269 -0
  324. data/lib/bitpesa-sdk/models/payout_method.rb +249 -0
  325. data/lib/bitpesa-sdk/models/payout_method_bank_account_type_enum.rb +38 -0
  326. data/lib/bitpesa-sdk/models/payout_method_details.rb +456 -0
  327. data/lib/bitpesa-sdk/models/payout_method_details_balance.rb +196 -0
  328. data/lib/bitpesa-sdk/models/payout_method_details_ghs_bank.rb +243 -0
  329. data/lib/bitpesa-sdk/models/payout_method_details_iban.rb +252 -0
  330. data/lib/bitpesa-sdk/models/payout_method_details_mad_cash.rb +326 -0
  331. data/lib/bitpesa-sdk/models/payout_method_details_mobile.rb +229 -0
  332. data/lib/bitpesa-sdk/models/payout_method_details_ngn_bank.rb +257 -0
  333. data/lib/bitpesa-sdk/models/payout_method_details_xof_mobile.rb +243 -0
  334. data/lib/bitpesa-sdk/models/payout_method_gender_enum.rb +38 -0
  335. data/lib/bitpesa-sdk/models/payout_method_identity_card_type_enum.rb +39 -0
  336. data/lib/bitpesa-sdk/models/payout_method_list_response.rb +206 -0
  337. data/lib/bitpesa-sdk/models/payout_method_mobile_provider_enum.rb +38 -0
  338. data/lib/bitpesa-sdk/models/payout_method_request.rb +195 -0
  339. data/lib/bitpesa-sdk/models/payout_method_response.rb +195 -0
  340. data/lib/bitpesa-sdk/models/payout_method_webhook.rb +237 -0
  341. data/lib/bitpesa-sdk/models/recipient.rb +400 -0
  342. data/lib/bitpesa-sdk/models/recipient_list_response.rb +206 -0
  343. data/lib/bitpesa-sdk/models/recipient_request.rb +195 -0
  344. data/lib/bitpesa-sdk/models/recipient_response.rb +195 -0
  345. data/lib/bitpesa-sdk/models/recipient_state.rb +46 -0
  346. data/lib/bitpesa-sdk/models/recipient_webhook.rb +237 -0
  347. data/lib/bitpesa-sdk/models/sender.rb +513 -0
  348. data/lib/bitpesa-sdk/models/sender_list_response.rb +206 -0
  349. data/lib/bitpesa-sdk/models/sender_request.rb +195 -0
  350. data/lib/bitpesa-sdk/models/sender_response.rb +195 -0
  351. data/lib/bitpesa-sdk/models/sender_state.rb +42 -0
  352. data/lib/bitpesa-sdk/models/sender_webhook.rb +237 -0
  353. data/lib/bitpesa-sdk/models/transaction.rb +354 -0
  354. data/lib/bitpesa-sdk/models/transaction_list_response.rb +206 -0
  355. data/lib/bitpesa-sdk/models/transaction_request.rb +195 -0
  356. data/lib/bitpesa-sdk/models/transaction_response.rb +195 -0
  357. data/lib/bitpesa-sdk/models/transaction_state.rb +46 -0
  358. data/lib/bitpesa-sdk/models/transaction_traits.rb +207 -0
  359. data/lib/bitpesa-sdk/models/transaction_webhook.rb +237 -0
  360. data/lib/bitpesa-sdk/models/validation_error_description.rb +197 -0
  361. data/lib/bitpesa-sdk/models/webhook.rb +232 -0
  362. data/lib/bitpesa-sdk/models/webhook_definition.rb +250 -0
  363. data/lib/bitpesa-sdk/models/webhook_definition_event_list_response.rb +197 -0
  364. data/lib/bitpesa-sdk/models/webhook_definition_list_response.rb +206 -0
  365. data/lib/bitpesa-sdk/models/webhook_definition_request.rb +195 -0
  366. data/lib/bitpesa-sdk/models/webhook_definition_response.rb +195 -0
  367. data/lib/bitpesa-sdk/models/webhook_log.rb +243 -0
  368. data/lib/bitpesa-sdk/models/webhook_log_list_response.rb +207 -0
  369. data/lib/bitpesa-sdk/models/webhook_log_metadata.rb +283 -0
  370. data/lib/bitpesa-sdk/models/webhook_log_metadata_request.rb +218 -0
  371. data/lib/bitpesa-sdk/models/webhook_log_metadata_response.rb +219 -0
  372. data/lib/bitpesa-sdk/models/webhook_log_response.rb +195 -0
  373. data/lib/bitpesa-sdk/version.rb +15 -0
  374. data/lib/bitpesa-sdk.rb +142 -0
  375. data/spec/api/account_debits_api_spec.rb +70 -0
  376. data/spec/api/account_validation_api_spec.rb +47 -0
  377. data/spec/api/accounts_api_spec.rb +58 -0
  378. data/spec/api/api_logs_api_spec.rb +58 -0
  379. data/spec/api/currency_info_api_spec.rb +68 -0
  380. data/spec/api/documents_api_spec.rb +70 -0
  381. data/spec/api/logs_api_spec.rb +58 -0
  382. data/spec/api/payment_methods_api_spec.rb +57 -0
  383. data/spec/api/payout_methods_api_spec.rb +58 -0
  384. data/spec/api/recipients_api_spec.rb +74 -0
  385. data/spec/api/senders_api_spec.rb +95 -0
  386. data/spec/api/transaction_requests_api_spec.rb +76 -0
  387. data/spec/api/transactions_api_spec.rb +96 -0
  388. data/spec/api/webhooks_api_spec.rb +95 -0
  389. data/spec/api_client_spec.rb +226 -0
  390. data/spec/configuration_spec.rb +42 -0
  391. data/spec/models/account_base_spec.rb +48 -0
  392. data/spec/models/account_list_response_spec.rb +47 -0
  393. data/spec/models/account_meta_spec.rb +42 -0
  394. data/spec/models/account_response_spec.rb +47 -0
  395. data/spec/models/account_spec.rb +47 -0
  396. data/spec/models/account_validation_error_spec.rb +41 -0
  397. data/spec/models/account_validation_request_spec.rb +77 -0
  398. data/spec/models/account_validation_response_spec.rb +47 -0
  399. data/spec/models/account_validation_result_spec.rb +41 -0
  400. data/spec/models/api_log_base_spec.rb +90 -0
  401. data/spec/models/api_log_list_response_spec.rb +47 -0
  402. data/spec/models/api_log_response_spec.rb +41 -0
  403. data/spec/models/api_log_spec.rb +90 -0
  404. data/spec/models/body_spec.rb +58 -0
  405. data/spec/models/currency_base_spec.rb +84 -0
  406. data/spec/models/currency_exchange_list_response_spec.rb +41 -0
  407. data/spec/models/currency_exchange_spec.rb +101 -0
  408. data/spec/models/currency_list_response_spec.rb +41 -0
  409. data/spec/models/currency_opposite_spec.rb +101 -0
  410. data/spec/models/currency_spec.rb +84 -0
  411. data/spec/models/debit_base_spec.rb +66 -0
  412. data/spec/models/debit_error_response_spec.rb +72 -0
  413. data/spec/models/debit_list_request_spec.rb +41 -0
  414. data/spec/models/debit_list_response_spec.rb +47 -0
  415. data/spec/models/debit_request_spec.rb +66 -0
  416. data/spec/models/debit_request_wrapper_spec.rb +41 -0
  417. data/spec/models/debit_response_spec.rb +41 -0
  418. data/spec/models/debit_spec.rb +66 -0
  419. data/spec/models/debit_valid_response_spec.rb +72 -0
  420. data/spec/models/default_document_spec.rb +94 -0
  421. data/spec/models/default_recipient_spec.rb +60 -0
  422. data/spec/models/default_sender_spec.rb +142 -0
  423. data/spec/models/default_webhook_spec.rb +60 -0
  424. data/spec/models/document_base_spec.rb +88 -0
  425. data/spec/models/document_error_response_spec.rb +94 -0
  426. data/spec/models/document_list_response_spec.rb +47 -0
  427. data/spec/models/document_request_spec.rb +88 -0
  428. data/spec/models/document_response_spec.rb +41 -0
  429. data/spec/models/document_spec.rb +36 -0
  430. data/spec/models/document_valid_response_spec.rb +94 -0
  431. data/spec/models/document_webhook_spec.rb +53 -0
  432. data/spec/models/error_status_spec.rb +47 -0
  433. data/spec/models/field_description_spec.rb +51 -0
  434. data/spec/models/field_select_validation_spec.rb +47 -0
  435. data/spec/models/field_validation_spec.rb +53 -0
  436. data/spec/models/full_invalid_transaction_request_spec.rb +78 -0
  437. data/spec/models/full_invalid_transaction_spec.rb +66 -0
  438. data/spec/models/full_valid_transaction_request_spec.rb +66 -0
  439. data/spec/models/full_valid_transaction_spec.rb +60 -0
  440. data/spec/models/inline_response_200_10_spec.rb +42 -0
  441. data/spec/models/inline_response_200_11_spec.rb +48 -0
  442. data/spec/models/inline_response_200_12_spec.rb +42 -0
  443. data/spec/models/inline_response_200_13_spec.rb +48 -0
  444. data/spec/models/inline_response_200_14_spec.rb +42 -0
  445. data/spec/models/inline_response_200_15_spec.rb +48 -0
  446. data/spec/models/inline_response_200_16_spec.rb +48 -0
  447. data/spec/models/inline_response_200_17_spec.rb +48 -0
  448. data/spec/models/inline_response_200_18_spec.rb +42 -0
  449. data/spec/models/inline_response_200_19_spec.rb +48 -0
  450. data/spec/models/inline_response_200_1_spec.rb +48 -0
  451. data/spec/models/inline_response_200_20_spec.rb +42 -0
  452. data/spec/models/inline_response_200_21_object_spec.rb +42 -0
  453. data/spec/models/inline_response_200_21_spec.rb +42 -0
  454. data/spec/models/inline_response_200_22_object_spec.rb +42 -0
  455. data/spec/models/inline_response_200_22_spec.rb +42 -0
  456. data/spec/models/inline_response_200_23_object_spec.rb +42 -0
  457. data/spec/models/inline_response_200_23_spec.rb +48 -0
  458. data/spec/models/inline_response_200_24_spec.rb +42 -0
  459. data/spec/models/inline_response_200_25_spec.rb +42 -0
  460. data/spec/models/inline_response_200_26_spec.rb +42 -0
  461. data/spec/models/inline_response_200_27_spec.rb +48 -0
  462. data/spec/models/inline_response_200_28_spec.rb +42 -0
  463. data/spec/models/inline_response_200_29_spec.rb +48 -0
  464. data/spec/models/inline_response_200_2_object_spec.rb +42 -0
  465. data/spec/models/inline_response_200_2_spec.rb +42 -0
  466. data/spec/models/inline_response_200_30_spec.rb +42 -0
  467. data/spec/models/inline_response_200_31_spec.rb +48 -0
  468. data/spec/models/inline_response_200_32_spec.rb +42 -0
  469. data/spec/models/inline_response_200_33_spec.rb +48 -0
  470. data/spec/models/inline_response_200_34_spec.rb +42 -0
  471. data/spec/models/inline_response_200_35_spec.rb +48 -0
  472. data/spec/models/inline_response_200_36_spec.rb +48 -0
  473. data/spec/models/inline_response_200_37_spec.rb +48 -0
  474. data/spec/models/inline_response_200_38_spec.rb +42 -0
  475. data/spec/models/inline_response_200_39_spec.rb +48 -0
  476. data/spec/models/inline_response_200_3_spec.rb +48 -0
  477. data/spec/models/inline_response_200_40_spec.rb +42 -0
  478. data/spec/models/inline_response_200_4_object_spec.rb +42 -0
  479. data/spec/models/inline_response_200_4_spec.rb +42 -0
  480. data/spec/models/inline_response_200_5_spec.rb +42 -0
  481. data/spec/models/inline_response_200_6_spec.rb +42 -0
  482. data/spec/models/inline_response_200_7_spec.rb +48 -0
  483. data/spec/models/inline_response_200_8_spec.rb +42 -0
  484. data/spec/models/inline_response_200_9_spec.rb +48 -0
  485. data/spec/models/inline_response_200_spec.rb +48 -0
  486. data/spec/models/inline_response_201_10_spec.rb +42 -0
  487. data/spec/models/inline_response_201_11_spec.rb +42 -0
  488. data/spec/models/inline_response_201_1_spec.rb +42 -0
  489. data/spec/models/inline_response_201_2_spec.rb +42 -0
  490. data/spec/models/inline_response_201_3_spec.rb +42 -0
  491. data/spec/models/inline_response_201_4_spec.rb +42 -0
  492. data/spec/models/inline_response_201_5_spec.rb +42 -0
  493. data/spec/models/inline_response_201_6_spec.rb +42 -0
  494. data/spec/models/inline_response_201_7_spec.rb +42 -0
  495. data/spec/models/inline_response_201_8_spec.rb +42 -0
  496. data/spec/models/inline_response_201_9_spec.rb +42 -0
  497. data/spec/models/inline_response_201_spec.rb +42 -0
  498. data/spec/models/inline_response_400_1_spec.rb +48 -0
  499. data/spec/models/inline_response_400_spec.rb +48 -0
  500. data/spec/models/inline_response_422_10_spec.rb +42 -0
  501. data/spec/models/inline_response_422_11_spec.rb +42 -0
  502. data/spec/models/inline_response_422_12_spec.rb +42 -0
  503. data/spec/models/inline_response_422_13_spec.rb +42 -0
  504. data/spec/models/inline_response_422_14_spec.rb +42 -0
  505. data/spec/models/inline_response_422_1_meta_spec.rb +42 -0
  506. data/spec/models/inline_response_422_1_object_spec.rb +42 -0
  507. data/spec/models/inline_response_422_1_spec.rb +42 -0
  508. data/spec/models/inline_response_422_2_spec.rb +42 -0
  509. data/spec/models/inline_response_422_3_spec.rb +42 -0
  510. data/spec/models/inline_response_422_4_spec.rb +42 -0
  511. data/spec/models/inline_response_422_5_spec.rb +42 -0
  512. data/spec/models/inline_response_422_6_spec.rb +42 -0
  513. data/spec/models/inline_response_422_7_meta_spec.rb +42 -0
  514. data/spec/models/inline_response_422_7_spec.rb +42 -0
  515. data/spec/models/inline_response_422_8_meta_spec.rb +42 -0
  516. data/spec/models/inline_response_422_8_object_spec.rb +42 -0
  517. data/spec/models/inline_response_422_8_spec.rb +48 -0
  518. data/spec/models/inline_response_422_9_spec.rb +42 -0
  519. data/spec/models/inline_response_422_meta_spec.rb +42 -0
  520. data/spec/models/inline_response_422_object_spec.rb +42 -0
  521. data/spec/models/inline_response_422_spec.rb +48 -0
  522. data/spec/models/invalid_debit_spec.rb +78 -0
  523. data/spec/models/invalid_document_spec.rb +100 -0
  524. data/spec/models/invalid_recipient_spec.rb +66 -0
  525. data/spec/models/invalid_sender_spec.rb +148 -0
  526. data/spec/models/invalid_webhook_spec.rb +60 -0
  527. data/spec/models/meta_2_pagination_spec.rb +66 -0
  528. data/spec/models/meta_2_spec.rb +42 -0
  529. data/spec/models/meta_pagination_spec.rb +66 -0
  530. data/spec/models/meta_spec.rb +42 -0
  531. data/spec/models/object_spec.rb +48 -0
  532. data/spec/models/opposite_payment_method_base_spec.rb +72 -0
  533. data/spec/models/opposite_payment_method_spec.rb +72 -0
  534. data/spec/models/pagination_meta_spec.rb +41 -0
  535. data/spec/models/pagination_pagination_spec.rb +66 -0
  536. data/spec/models/pagination_spec.rb +42 -0
  537. data/spec/models/payin_method_base_spec.rb +66 -0
  538. data/spec/models/payin_method_details_base_spec.rb +36 -0
  539. data/spec/models/payin_method_details_mobile_spec.rb +48 -0
  540. data/spec/models/payin_method_details_ngn_bank_spec.rb +42 -0
  541. data/spec/models/payin_method_details_spec.rb +53 -0
  542. data/spec/models/payin_method_request_spec.rb +41 -0
  543. data/spec/models/payin_method_spec.rb +65 -0
  544. data/spec/models/payin_method_type_base_spec.rb +42 -0
  545. data/spec/models/payin_method_type_spec.rb +42 -0
  546. data/spec/models/payment_method_base_spec.rb +66 -0
  547. data/spec/models/payment_method_list_response_spec.rb +41 -0
  548. data/spec/models/payment_method_opposite_spec.rb +77 -0
  549. data/spec/models/payment_method_spec.rb +66 -0
  550. data/spec/models/payout_method_bank_account_type_enum_spec.rb +35 -0
  551. data/spec/models/payout_method_base_spec.rb +54 -0
  552. data/spec/models/payout_method_details_balance_spec.rb +42 -0
  553. data/spec/models/payout_method_details_base_spec.rb +36 -0
  554. data/spec/models/payout_method_details_ghs_bank_spec.rb +60 -0
  555. data/spec/models/payout_method_details_iban_spec.rb +66 -0
  556. data/spec/models/payout_method_details_mad_cash_spec.rb +110 -0
  557. data/spec/models/payout_method_details_mobile_spec.rb +54 -0
  558. data/spec/models/payout_method_details_ngn_bank_spec.rb +70 -0
  559. data/spec/models/payout_method_details_spec.rb +149 -0
  560. data/spec/models/payout_method_details_xof_mobile_spec.rb +64 -0
  561. data/spec/models/payout_method_error_response_spec.rb +60 -0
  562. data/spec/models/payout_method_gender_enum_spec.rb +35 -0
  563. data/spec/models/payout_method_identity_card_type_enum_spec.rb +35 -0
  564. data/spec/models/payout_method_list_response_spec.rb +47 -0
  565. data/spec/models/payout_method_mobile_provider_enum_spec.rb +35 -0
  566. data/spec/models/payout_method_request_spec.rb +54 -0
  567. data/spec/models/payout_method_response_spec.rb +54 -0
  568. data/spec/models/payout_method_spec.rb +72 -0
  569. data/spec/models/payout_method_valid_response_spec.rb +60 -0
  570. data/spec/models/payout_method_webhook_spec.rb +53 -0
  571. data/spec/models/recipient_base_spec.rb +54 -0
  572. data/spec/models/recipient_error_response_spec.rb +60 -0
  573. data/spec/models/recipient_list_response_spec.rb +47 -0
  574. data/spec/models/recipient_request_spec.rb +60 -0
  575. data/spec/models/recipient_response_spec.rb +138 -0
  576. data/spec/models/recipient_spec.rb +36 -0
  577. data/spec/models/recipient_state_spec.rb +35 -0
  578. data/spec/models/recipient_valid_response_spec.rb +60 -0
  579. data/spec/models/recipient_webhook_spec.rb +53 -0
  580. data/spec/models/sender_base_spec.rb +136 -0
  581. data/spec/models/sender_error_response_spec.rb +142 -0
  582. data/spec/models/sender_existing_request_spec.rb +42 -0
  583. data/spec/models/sender_full_request_spec.rb +136 -0
  584. data/spec/models/sender_list_response_spec.rb +47 -0
  585. data/spec/models/sender_request_spec.rb +136 -0
  586. data/spec/models/sender_response_spec.rb +142 -0
  587. data/spec/models/sender_spec.rb +36 -0
  588. data/spec/models/sender_state_spec.rb +35 -0
  589. data/spec/models/sender_valid_response_spec.rb +142 -0
  590. data/spec/models/sender_webhook_spec.rb +53 -0
  591. data/spec/models/transaction_base_spec.rb +60 -0
  592. data/spec/models/transaction_error_response_spec.rb +66 -0
  593. data/spec/models/transaction_list_response_spec.rb +47 -0
  594. data/spec/models/transaction_request_base_spec.rb +48 -0
  595. data/spec/models/transaction_request_error_response_spec.rb +54 -0
  596. data/spec/models/transaction_request_request_spec.rb +48 -0
  597. data/spec/models/transaction_request_spec.rb +48 -0
  598. data/spec/models/transaction_request_valid_response_spec.rb +54 -0
  599. data/spec/models/transaction_response_spec.rb +114 -0
  600. data/spec/models/transaction_spec.rb +60 -0
  601. data/spec/models/transaction_state_spec.rb +35 -0
  602. data/spec/models/transaction_traits_spec.rb +48 -0
  603. data/spec/models/transaction_valid_response_spec.rb +66 -0
  604. data/spec/models/transaction_webhook_spec.rb +53 -0
  605. data/spec/models/valid_debit_spec.rb +90 -0
  606. data/spec/models/validation_error_description_spec.rb +41 -0
  607. data/spec/models/webhook_base_spec.rb +54 -0
  608. data/spec/models/webhook_definition_base_spec.rb +54 -0
  609. data/spec/models/webhook_definition_error_response_spec.rb +60 -0
  610. data/spec/models/webhook_definition_event_list_response_spec.rb +41 -0
  611. data/spec/models/webhook_definition_list_response_spec.rb +47 -0
  612. data/spec/models/webhook_definition_request_spec.rb +54 -0
  613. data/spec/models/webhook_definition_response_spec.rb +41 -0
  614. data/spec/models/webhook_definition_spec.rb +65 -0
  615. data/spec/models/webhook_definition_valid_response_spec.rb +60 -0
  616. data/spec/models/webhook_error_response_spec.rb +60 -0
  617. data/spec/models/webhook_log_base_metadata_params_spec.rb +42 -0
  618. data/spec/models/webhook_log_base_metadata_request_spec.rb +54 -0
  619. data/spec/models/webhook_log_base_metadata_response_spec.rb +54 -0
  620. data/spec/models/webhook_log_base_metadata_spec.rb +96 -0
  621. data/spec/models/webhook_log_base_spec.rb +72 -0
  622. data/spec/models/webhook_log_list_response_spec.rb +47 -0
  623. data/spec/models/webhook_log_metadata_params_spec.rb +42 -0
  624. data/spec/models/webhook_log_metadata_request_spec.rb +54 -0
  625. data/spec/models/webhook_log_metadata_response_spec.rb +54 -0
  626. data/spec/models/webhook_log_metadata_spec.rb +96 -0
  627. data/spec/models/webhook_log_response_spec.rb +41 -0
  628. data/spec/models/webhook_log_spec.rb +72 -0
  629. data/spec/models/webhook_request_spec.rb +54 -0
  630. data/spec/models/webhook_spec.rb +54 -0
  631. data/spec/models/webhook_valid_response_spec.rb +60 -0
  632. data/spec/spec_helper.rb +111 -0
  633. metadata +1127 -0
Binary file
Binary file
data/example/client.rb ADDED
@@ -0,0 +1,395 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'securerandom'
4
+ require 'bundler/inline'
5
+
6
+ gemfile do
7
+ gem "bitpesa-sdk", "=0.1.0"
8
+ end
9
+
10
+ require 'bitpesa-sdk'
11
+
12
+ credentials = {
13
+ key: "/8w2C+cXLixtV+erRpFK3kd/neknrfToQGCw9zoCYw5jAFJEv6XrnOhF0+Vk65jgq094J8LDQ9H8x1hEgeXdFA==",
14
+ secret: "biBm9X2y2wRY4U1WZPpFrxCSoHQ1Xtyy9VPxbfhAI70wxsnmvEGhC4PlTyjejRqvrnIT7velS8WyYb0AN4Y29A==",
15
+ host: 'localhost:3002/v1',
16
+ }
17
+
18
+ class Client
19
+ def initialize(credentials)
20
+ Bitpesa.configure do |config|
21
+ config.api_key = credentials[:key]
22
+ config.api_secret = credentials[:secret]
23
+ config.host = credentials[:host]
24
+ config.scheme = 'http'
25
+ end
26
+ end
27
+
28
+ def list_currencies_example
29
+ begin
30
+ currency_info_api = Bitpesa::CurrencyInfoApi.new
31
+ currencies = currency_info_api.info_currencies.object
32
+ currencies.map(&:code)
33
+ rescue Bitpesa::ApiError => e
34
+ puts "Exception when calling CurrencyInfoApi#info_currencies: #{e}"
35
+ end
36
+ end
37
+
38
+ def account_validation_example
39
+ begin
40
+ request = Bitpesa::AccountValidationRequest.new
41
+ request.bank_account = '9040009999999'
42
+ request.bank_code = '120100'
43
+ request.country = 'GH'
44
+ request.currency = 'GHS'
45
+ request.method = 'bank'
46
+
47
+ account_validation_api = Bitpesa::AccountValidationApi.new
48
+ account_validation = account_validation_api.post_account_validations(request)
49
+ account_name = account_validation.object.account_name
50
+ puts "Account Name: #{account_name}"
51
+ rescue Bitpesa::ApiError => e
52
+ if e.validation_error
53
+ puts e.response_object("AccountValidationResponse").meta.error
54
+ else
55
+ puts "Exception when calling AccountValidationApi#account_validation_example: #{e}"
56
+ end
57
+ end
58
+ end
59
+
60
+ def create_sender_example
61
+ begin
62
+ api = Bitpesa::SendersApi.new
63
+ sender = Bitpesa::Sender.new
64
+ sender.country = 'UG'
65
+ sender.phone_country = 'UG'
66
+ sender.phone_number = '752403639'
67
+ sender.email = 'example@home.org'
68
+ sender.first_name = 'Johnny'
69
+ sender.last_name = 'English'
70
+ sender.city = 'Kampala'
71
+ sender.street = "Unknown 17-3"
72
+ sender.address_description = "Description of address"
73
+ sender.postal_code = "798983"
74
+ sender.birth_date = "1900-12-31"
75
+ sender.ip = '127.0.0.1'
76
+
77
+ sender_request = Bitpesa::SenderRequest.new
78
+ sender_request.sender = sender
79
+ api.post_senders(sender_request)
80
+ # SenderRequest |
81
+ rescue Bitpesa::ApiError => e
82
+ if e.validation_error
83
+ puts e.response_object("SenderResponse").object.errors
84
+ else
85
+ puts "Exception when calling SendersApi#create_sender_example: #{e}"
86
+ end
87
+ end
88
+ end
89
+
90
+ def update_sender_example
91
+ begin
92
+ api = Bitpesa::SendersApi.new
93
+ sender = Bitpesa::Sender.new
94
+ sender.city = 'London'
95
+ sender_request = Bitpesa::SenderRequest.new
96
+ sender_request.sender = sender
97
+
98
+ api.patch_sender('0789f89b-a2f3-4323-b8cc-c901692889d4', sender_request)
99
+ rescue Bitpesa::ApiError => e
100
+ if e.validation_error
101
+ puts e.response_object("SenderResponse").object.errors
102
+ else
103
+ puts "Exception when calling SendersApi#create_sender_example: #{e}"
104
+ end
105
+ end
106
+ end
107
+
108
+ def create_transaction_example
109
+ begin
110
+ api = Bitpesa::TransactionsApi.new
111
+ transaction = Bitpesa::Transaction.new
112
+
113
+ sender = Bitpesa::Sender.new
114
+ sender.id = 'ec33484c-4456-4625-a823-9704a3a54e68'
115
+
116
+ ngn_bank_details = Bitpesa::PayoutMethodDetails.new
117
+ ngn_bank_details.bank_account = '123456789'
118
+ ngn_bank_details.bank_account_type = Bitpesa::PayoutMethodBankAccountTypeEnum::N20
119
+ ngn_bank_details.bank_code = '082'
120
+ ngn_bank_details.first_name = 'first'
121
+ ngn_bank_details.last_name = 'last'
122
+
123
+ payout_method = Bitpesa::PayoutMethod.new
124
+ payout_method.type = 'NGN::Bank'
125
+ payout_method.details = ngn_bank_details
126
+
127
+ recipient = Bitpesa::Recipient.new
128
+ recipient.requested_amount = 10000
129
+ recipient.requested_currency = 'NGN'
130
+ recipient.payout_method = payout_method
131
+
132
+ transaction.input_currency = 'GBP'
133
+ transaction.sender = sender
134
+ transaction.recipients = [recipient]
135
+
136
+ transaction_request = Bitpesa::TransactionRequest.new
137
+ transaction_request.transaction = transaction
138
+ transaction_response = api.post_transactions(transaction_request)
139
+ created_transaction = transaction_response.object
140
+
141
+ puts "Transaction created! ID: #{created_transaction.id}"
142
+ created_transaction.id
143
+ rescue Bitpesa::ApiError => e
144
+ if e.validation_error
145
+ puts e.response_object("TransactionResponse").object.errors
146
+ else
147
+ puts e
148
+ end
149
+ end
150
+ end
151
+
152
+ def create_and_fund_transaction_example
153
+ transaction_id = create_transaction_example
154
+ if transaction_id.nil?
155
+ puts "Transaction with ID #{transaction_id} does not exist"
156
+ else
157
+ debit = Bitpesa::Debit.new
158
+ debit.currency = 'GBP'
159
+ debit.to_id = transaction_id
160
+ debit.to_type = "Transaction"
161
+
162
+ debit_request = Bitpesa::DebitRequestWrapper.new
163
+ debit_request.debit = debit
164
+
165
+ debit_api = Bitpesa::AccountDebitsApi.new
166
+
167
+ begin
168
+ debit_response = debit_api.post_accounts_debits(debit_request)
169
+ puts "Transaction Funded Successfully"
170
+ debit_response.object
171
+ rescue Bitpesa::ApiError => e
172
+ if e.validation_error
173
+ puts e.response_object("DebitResponse").object.errors
174
+ else
175
+ puts e
176
+ end
177
+ end
178
+ end
179
+ end
180
+
181
+ def webhook_parse_example
182
+ webhook_content = <<-JSON
183
+ {
184
+ "webhook": "85d11cf4-d4d6-46e4-ab7d-91355e80392a",
185
+ "event": "transaction.created",
186
+ "object": {
187
+ "input_amount": 21.59,
188
+ "input_currency": "GBP",
189
+ "id": "cd390e83-a9de-404d-a660-4da0f1342c04",
190
+ "metadata": {},
191
+ "state": "approved",
192
+ "payin_reference": "WIHGHZTSPOWN",
193
+ "sender": {
194
+ "id": "6f15f581-889f-4ae1-9591-cb283add661f",
195
+ "type": "person",
196
+ "state": "approved",
197
+ "state_reason": null,
198
+ "country": "GB",
199
+ "street": "Brick Lane",
200
+ "postal_code": "E1 6QL",
201
+ "city": "London",
202
+ "phone_country": "GB",
203
+ "phone_number": "07123456789",
204
+ "email": "me@bitpesa.co",
205
+ "ip": "127.0.0.1",
206
+ "address_description": null,
207
+ "first_name": "Test",
208
+ "middle_name": null,
209
+ "last_name": "User",
210
+ "birth_date": "1990-01-01",
211
+ "occupation": "Tester",
212
+ "nationality": null,
213
+ "metadata": {
214
+ "bitpesa": {
215
+ "referer": {}
216
+ }
217
+ },
218
+ "providers": {
219
+ "NGN::Bank": "bitpesa_auto"
220
+ },
221
+ "onboarding_status": "completed_first_transaction"
222
+ },
223
+ "payin_methods": [
224
+ {
225
+ "id": "e78632a8-51de-4b78-892c-31d6c5d0db5c",
226
+ "type": "GBP::Bank",
227
+ "out_details": {
228
+ "style": "info",
229
+ "BIC": "LHVBEE22",
230
+ "IBAN": "EE087700771002673049",
231
+ "Reference": "WIHGHZTSPOWN",
232
+ "Account Name": "B TRANSFER SERVICES LIMITED",
233
+ "Bank Address": "Tartu mnt 2, 10145 Tallinn, Estonia.",
234
+ "Beneficiary Address": "Tax Assist Accountants, 64 Southwark Bridge Road, London SE1 0AS"
235
+ },
236
+ "in_details": {},
237
+ "instructions": {},
238
+ "provider": "lhv"
239
+ }
240
+ ],
241
+ "paid_amount": 0,
242
+ "due_amount": 21.59,
243
+ "recipients": [
244
+ {
245
+ "created_at": "2019-03-04T07:41:49.972Z",
246
+ "editable": true,
247
+ "id": "4a401c7f-7e38-445f-bb85-7dcad8d22e91",
248
+ "input_usd_amount": 28.52,
249
+ "may_cancel": true,
250
+ "metadata": {},
251
+ "state": "initial",
252
+ "transaction_id": "cd390e83-a9de-404d-a660-4da0f1342c04",
253
+ "transaction_state": "initial",
254
+ "payout_method": {
255
+ "id": "b704e560-da50-4ff5-9bd7-b9499dba4b54",
256
+ "type": "NGN::Bank",
257
+ "details": {
258
+ "bank_code": "082",
259
+ "last_name": "Last",
260
+ "first_name": "First",
261
+ "bank_account": "123456789",
262
+ "bank_account_type": "20"
263
+ },
264
+ "metadata": {},
265
+ "provider": "bitpesa_auto",
266
+ "fields": {
267
+ "email": {
268
+ "type": "input",
269
+ "validations": {
270
+ "format": "\\A((\\w+([\\-+.]\\w+)*@[a-zA-Z0-9]+([\\-\\.][a-zA-Z0-9]+)*)*){3,320}\\z"
271
+ }
272
+ },
273
+ "first_name": {
274
+ "type": "input",
275
+ "validations": {
276
+ "presence": true
277
+ }
278
+ },
279
+ "last_name": {
280
+ "type": "input",
281
+ "validations": {
282
+ "presence": true
283
+ }
284
+ },
285
+ "bank_code": {
286
+ "type": "select",
287
+ "options": {
288
+ "214": "FCMB Bank",
289
+ "215": "Unity Bank",
290
+ "232": "Sterling bank",
291
+ "301": "Jaiz Bank",
292
+ "044": "Access Bank",
293
+ "063": "Diamond Bank",
294
+ "050": "EcoBank",
295
+ "070": "Fidelity Bank",
296
+ "011": "First Bank of Nigeria",
297
+ "058": "Guaranty Trust Bank",
298
+ "030": "Heritage Bank",
299
+ "082": "Keystone",
300
+ "076": "Polaris Bank",
301
+ "039": "Stanbic IBTC Bank",
302
+ "032": "Union Bank",
303
+ "033": "United Bank for Africa",
304
+ "035": "Wema Bank",
305
+ "057": "Zenith International"
306
+ },
307
+ "validations": {
308
+ "presence": true,
309
+ "inclusion": {
310
+ "in": {
311
+ "214": "FCMB Bank",
312
+ "215": "Unity Bank",
313
+ "232": "Sterling bank",
314
+ "301": "Jaiz Bank",
315
+ "044": "Access Bank",
316
+ "063": "Diamond Bank",
317
+ "050": "EcoBank",
318
+ "070": "Fidelity Bank",
319
+ "011": "First Bank of Nigeria",
320
+ "058": "Guaranty Trust Bank",
321
+ "030": "Heritage Bank",
322
+ "082": "Keystone",
323
+ "076": "Polaris Bank",
324
+ "039": "Stanbic IBTC Bank",
325
+ "032": "Union Bank",
326
+ "033": "United Bank for Africa",
327
+ "035": "Wema Bank",
328
+ "057": "Zenith International"
329
+ }
330
+ }
331
+ }
332
+ },
333
+ "bank_account": {
334
+ "type": "input",
335
+ "validations": {
336
+ "presence": true
337
+ }
338
+ },
339
+ "bank_account_type": {
340
+ "type": "select",
341
+ "options": {
342
+ "10": "Savings",
343
+ "20": "Current",
344
+ "00": "Unknown"
345
+ }
346
+ }
347
+ }
348
+ },
349
+ "exchange_rate": 463.177396943029,
350
+ "fee_fractional": 64,
351
+ "requested_amount": 10000,
352
+ "requested_currency": "NGN",
353
+ "input_amount": 21.59,
354
+ "input_currency": "GBP",
355
+ "output_amount": 10000,
356
+ "output_currency": "NGN"
357
+ }
358
+ ],
359
+ "created_at": "2019-03-04T07:41:49.972Z",
360
+ "expires_at": "2019-03-07T07:41:49.972Z",
361
+ "traits": {}
362
+ }
363
+ }
364
+ JSON
365
+
366
+ webhook_api = Bitpesa::ApiClient.new
367
+ webhook = webhook_api.parse_response(webhook_content, "Webhook")
368
+
369
+ if webhook['event'].start_with?('transaction')
370
+ transaction_webhook = webhook_api.parse_response(webhook_content, 'TransactionWebhook')
371
+ puts transaction_webhook.object.to_s
372
+ elsif webhook['event'].start_with?('recipient')
373
+ recipient_webhook = webhook_api.parse_response(webhook_content, 'RecipientWebhook')
374
+ puts recipient_webhook.object.to_s
375
+ elsif webhook['event'].start_with?('payout_method')
376
+ payout_method_webhook = webhook_api.parse_response(webhook_content, 'PayoutMethodWebhook')
377
+ puts payout_method_webhook.object.to_s
378
+ elsif webhook['event'].start_with?('sender')
379
+ sender_webhook = webhook_api.parse_response(webhook_content, 'SenderWebhook')
380
+ puts sender_webhook.object.to_s
381
+ elsif webhook['event'].start_with?('document')
382
+ document_webhook = webhook_api.parse_response(webhook_content, 'DocumentWebhook')
383
+ puts document_webhook.object.to_s
384
+ else
385
+ puts webhook
386
+ end
387
+ end
388
+ end
389
+
390
+ CLIENT = Client.new(credentials)
391
+ # client.list_currencies_example
392
+ # client.account_validation_example
393
+ # client.create_transaction_example
394
+ # client.create_and_fund_transaction_example
395
+ # client.webhook_parse_example
data/git_push.sh ADDED
@@ -0,0 +1,55 @@
1
+ #!/bin/sh
2
+ #
3
+ # Generated by: https://openapi-generator.tech
4
+ #
5
+ # ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
6
+ #
7
+ # Usage example: /bin/sh ./git_push.sh wing328 openapi-pestore-perl "minor update"
8
+
9
+ git_user_id=$1
10
+ git_repo_id=$2
11
+ release_note=$3
12
+
13
+ if [ "$git_user_id" = "" ]; then
14
+ git_user_id="bitpesa"
15
+ echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
16
+ fi
17
+
18
+ if [ "$git_repo_id" = "" ]; then
19
+ git_repo_id="bitpesa-ruby-sdk"
20
+ echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
21
+ fi
22
+
23
+ if [ "$release_note" = "" ]; then
24
+ release_note="Minor update"
25
+ echo "[INFO] No command line input provided. Set \$release_note to $release_note"
26
+ fi
27
+
28
+ # Initialize the local directory as a Git repository
29
+ git init
30
+
31
+ # Adds the files in the local repository and stages them for commit.
32
+ git add .
33
+
34
+ # Commits the tracked changes and prepares them to be pushed to a remote repository.
35
+ git commit -m "$release_note"
36
+
37
+ # Sets the new remote
38
+ git_remote=`git remote`
39
+ if [ "$git_remote" = "" ]; then # git remote not defined
40
+
41
+ if [ "$GIT_TOKEN" = "" ]; then
42
+ echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
43
+ git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git
44
+ else
45
+ git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git
46
+ fi
47
+
48
+ fi
49
+
50
+ git pull origin master
51
+
52
+ # Pushes (Forces) the changes in the local repository up to the remote repository
53
+ echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git"
54
+ git push origin master 2>&1 | grep -v 'To https'
55
+