balanced 0.8.2 → 1.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (359) hide show
  1. checksums.yaml +4 -4
  2. data/.rbenv-version +1 -1
  3. data/.ruby-version +1 -1
  4. data/Gemfile +7 -3
  5. data/README.md +2 -10
  6. data/Rakefile +4 -18
  7. data/balanced.gemspec +8 -10
  8. data/lib/balanced.rb +28 -28
  9. data/lib/balanced/client.rb +15 -6
  10. data/lib/balanced/error.rb +21 -12
  11. data/lib/balanced/pager.rb +66 -25
  12. data/lib/balanced/resources.rb +18 -17
  13. data/lib/balanced/resources/api_key.rb +4 -0
  14. data/lib/balanced/resources/bank_account.rb +26 -75
  15. data/lib/balanced/resources/callback.rb +2 -0
  16. data/lib/balanced/resources/card.rb +15 -65
  17. data/lib/balanced/resources/card_hold.rb +38 -0
  18. data/lib/balanced/resources/credit.rb +6 -50
  19. data/lib/balanced/resources/customer.rb +33 -71
  20. data/lib/balanced/resources/debit.rb +6 -14
  21. data/lib/balanced/resources/event.rb +6 -0
  22. data/lib/balanced/resources/funding_instrument.rb +11 -0
  23. data/lib/balanced/resources/hypermedia.rb +28 -0
  24. data/lib/balanced/resources/marketplace.rb +5 -203
  25. data/lib/balanced/resources/order.rb +71 -0
  26. data/lib/balanced/resources/refund.rb +2 -7
  27. data/lib/balanced/resources/resource.rb +169 -106
  28. data/lib/balanced/resources/reversal.rb +2 -8
  29. data/lib/balanced/resources/transfer.rb +11 -0
  30. data/lib/balanced/response/balanced_exception_middleware.rb +2 -2
  31. data/lib/balanced/utils.rb +47 -14
  32. data/lib/balanced/version.rb +1 -1
  33. data/scenario.cache +526 -380
  34. data/scenarios/api_key_create/definition.rb +1 -0
  35. data/scenarios/api_key_create/request.rb +2 -0
  36. data/scenarios/api_key_create/ruby.mako +21 -0
  37. data/scenarios/api_key_delete/definition.rb +1 -0
  38. data/scenarios/api_key_delete/request.rb +3 -0
  39. data/scenarios/api_key_delete/ruby.mako +12 -0
  40. data/scenarios/api_key_list/definition.rb +1 -0
  41. data/scenarios/api_key_list/request.rb +2 -0
  42. data/scenarios/api_key_list/ruby.mako +28 -0
  43. data/scenarios/api_key_show/definition.rb +1 -0
  44. data/scenarios/api_key_show/request.rb +2 -0
  45. data/scenarios/api_key_show/ruby.mako +18 -0
  46. data/scenarios/{customer_add_bank_account → bank_account_associate_to_customer}/definition.rb +0 -0
  47. data/scenarios/bank_account_associate_to_customer/request.rb +3 -0
  48. data/scenarios/bank_account_associate_to_customer/ruby.mako +49 -0
  49. data/scenarios/bank_account_create/definition.rb +1 -1
  50. data/scenarios/bank_account_create/request.rb +1 -1
  51. data/scenarios/bank_account_create/ruby.mako +44 -7
  52. data/scenarios/{credit_create_existing_bank_account → bank_account_credit}/definition.rb +0 -0
  53. data/scenarios/bank_account_credit/request.rb +3 -0
  54. data/scenarios/bank_account_credit/ruby.mako +42 -0
  55. data/scenarios/bank_account_debit/definition.rb +1 -0
  56. data/scenarios/bank_account_debit/request.rb +5 -0
  57. data/scenarios/bank_account_debit/ruby.mako +50 -0
  58. data/scenarios/bank_account_delete/request.rb +1 -1
  59. data/scenarios/bank_account_delete/ruby.mako +5 -3
  60. data/scenarios/bank_account_list/ruby.mako +76 -2
  61. data/scenarios/bank_account_show/definition.rb +1 -1
  62. data/scenarios/bank_account_show/request.rb +1 -1
  63. data/scenarios/bank_account_show/ruby.mako +41 -5
  64. data/scenarios/bank_account_update/definition.rb +1 -0
  65. data/scenarios/bank_account_update/request.rb +6 -0
  66. data/scenarios/bank_account_update/ruby.mako +56 -0
  67. data/scenarios/bank_account_verification_create/request.rb +1 -1
  68. data/scenarios/bank_account_verification_create/ruby.mako +20 -3
  69. data/scenarios/bank_account_verification_show/definition.rb +1 -1
  70. data/scenarios/bank_account_verification_show/request.rb +1 -1
  71. data/scenarios/bank_account_verification_show/ruby.mako +21 -4
  72. data/scenarios/bank_account_verification_update/definition.rb +1 -1
  73. data/scenarios/bank_account_verification_update/request.rb +5 -5
  74. data/scenarios/bank_account_verification_update/ruby.mako +24 -8
  75. data/scenarios/callback_create/definition.rb +1 -1
  76. data/scenarios/callback_create/request.rb +2 -2
  77. data/scenarios/callback_create/ruby.mako +22 -0
  78. data/scenarios/callback_delete/definition.rb +1 -1
  79. data/scenarios/callback_delete/request.rb +2 -2
  80. data/scenarios/callback_delete/ruby.mako +12 -0
  81. data/scenarios/callback_list/definition.rb +1 -1
  82. data/scenarios/callback_list/request.rb +1 -2
  83. data/scenarios/callback_list/ruby.mako +20 -0
  84. data/scenarios/callback_show/definition.rb +1 -1
  85. data/scenarios/callback_show/request.rb +1 -1
  86. data/scenarios/callback_show/ruby.mako +20 -0
  87. data/scenarios/{customer_add_card → card_associate_to_customer}/definition.rb +0 -0
  88. data/scenarios/card_associate_to_customer/request.rb +3 -0
  89. data/scenarios/card_associate_to_customer/ruby.mako +49 -0
  90. data/scenarios/card_create/request.rb +1 -2
  91. data/scenarios/card_create/ruby.mako +44 -7
  92. data/scenarios/card_debit/definition.rb +1 -0
  93. data/scenarios/card_debit/request.rb +5 -0
  94. data/scenarios/card_debit/ruby.mako +49 -0
  95. data/scenarios/card_delete/request.rb +1 -1
  96. data/scenarios/card_delete/ruby.mako +5 -3
  97. data/scenarios/card_hold_capture/definition.rb +1 -0
  98. data/scenarios/card_hold_capture/request.rb +5 -0
  99. data/scenarios/card_hold_capture/ruby.mako +49 -0
  100. data/scenarios/card_hold_create/definition.rb +1 -0
  101. data/scenarios/card_hold_create/request.rb +5 -0
  102. data/scenarios/card_hold_create/ruby.mako +38 -0
  103. data/scenarios/card_hold_list/definition.rb +1 -0
  104. data/scenarios/card_hold_list/request.rb +2 -0
  105. data/scenarios/card_hold_list/ruby.mako +60 -0
  106. data/scenarios/card_hold_show/definition.rb +1 -0
  107. data/scenarios/card_hold_show/request.rb +2 -0
  108. data/scenarios/card_hold_show/ruby.mako +36 -0
  109. data/scenarios/card_hold_update/definition.rb +1 -0
  110. data/scenarios/card_hold_update/request.rb +7 -0
  111. data/scenarios/card_hold_update/ruby.mako +42 -0
  112. data/scenarios/card_hold_void/definition.rb +1 -0
  113. data/scenarios/card_hold_void/request.rb +3 -0
  114. data/scenarios/card_hold_void/ruby.mako +36 -0
  115. data/scenarios/card_list/definition.rb +1 -1
  116. data/scenarios/card_list/request.rb +1 -1
  117. data/scenarios/card_list/ruby.mako +78 -5
  118. data/scenarios/card_show/definition.rb +1 -1
  119. data/scenarios/card_show/request.rb +1 -1
  120. data/scenarios/card_show/ruby.mako +42 -4
  121. data/scenarios/card_update/definition.rb +1 -1
  122. data/scenarios/card_update/request.rb +1 -1
  123. data/scenarios/card_update/ruby.mako +45 -4
  124. data/scenarios/credit_list/request.rb +1 -3
  125. data/scenarios/credit_list/ruby.mako +34 -4
  126. data/scenarios/{credit_bank_account_list → credit_list_bank_account}/definition.rb +0 -0
  127. data/scenarios/credit_list_bank_account/request.rb +3 -0
  128. data/scenarios/credit_list_bank_account/ruby.mako +13 -0
  129. data/scenarios/credit_show/definition.rb +1 -1
  130. data/scenarios/credit_show/request.rb +1 -3
  131. data/scenarios/credit_show/ruby.mako +35 -5
  132. data/scenarios/{credit_create_new_bank_account → credit_update}/definition.rb +0 -0
  133. data/scenarios/credit_update/request.rb +7 -0
  134. data/scenarios/credit_update/ruby.mako +48 -0
  135. data/scenarios/customer_create/request.rb +4 -1
  136. data/scenarios/customer_create/ruby.mako +60 -3
  137. data/scenarios/customer_delete/request.rb +1 -1
  138. data/scenarios/customer_delete/ruby.mako +4 -2
  139. data/scenarios/customer_list/definition.rb +1 -0
  140. data/scenarios/customer_list/request.rb +2 -0
  141. data/scenarios/customer_list/ruby.mako +105 -0
  142. data/scenarios/customer_show/definition.rb +1 -0
  143. data/scenarios/customer_show/request.rb +2 -0
  144. data/scenarios/customer_show/ruby.mako +58 -0
  145. data/scenarios/customer_update/definition.rb +1 -0
  146. data/scenarios/customer_update/request.rb +7 -0
  147. data/scenarios/customer_update/ruby.mako +64 -0
  148. data/scenarios/debit_list/request.rb +1 -3
  149. data/scenarios/debit_list/ruby.mako +70 -4
  150. data/scenarios/debit_show/definition.rb +1 -1
  151. data/scenarios/debit_show/request.rb +1 -1
  152. data/scenarios/debit_show/ruby.mako +39 -4
  153. data/scenarios/debit_update/definition.rb +1 -1
  154. data/scenarios/debit_update/request.rb +1 -1
  155. data/scenarios/debit_update/ruby.mako +39 -4
  156. data/scenarios/event_list/definition.rb +1 -1
  157. data/scenarios/event_list/request.rb +1 -2
  158. data/scenarios/event_list/ruby.mako +54 -5
  159. data/scenarios/event_show/definition.rb +1 -1
  160. data/scenarios/event_show/request.rb +1 -1
  161. data/scenarios/event_show/ruby.mako +54 -4
  162. data/scenarios/helpers.rb +29 -2
  163. data/scenarios/order_create/definition.rb +1 -0
  164. data/scenarios/order_create/request.rb +5 -0
  165. data/scenarios/order_create/ruby.mako +46 -0
  166. data/scenarios/order_list/definition.rb +1 -0
  167. data/scenarios/order_list/request.rb +2 -0
  168. data/scenarios/order_list/ruby.mako +42 -0
  169. data/scenarios/order_show/definition.rb +1 -0
  170. data/scenarios/order_show/request.rb +2 -0
  171. data/scenarios/order_show/ruby.mako +44 -0
  172. data/scenarios/order_update/definition.rb +1 -0
  173. data/scenarios/order_update/request.rb +7 -0
  174. data/scenarios/order_update/ruby.mako +50 -0
  175. data/scenarios/refund_create/definition.rb +1 -1
  176. data/scenarios/refund_create/request.rb +2 -1
  177. data/scenarios/refund_create/ruby.mako +33 -5
  178. data/scenarios/refund_list/request.rb +1 -3
  179. data/scenarios/refund_list/ruby.mako +30 -4
  180. data/scenarios/refund_show/definition.rb +1 -1
  181. data/scenarios/refund_show/request.rb +1 -1
  182. data/scenarios/refund_show/ruby.mako +32 -4
  183. data/scenarios/refund_update/definition.rb +1 -1
  184. data/scenarios/refund_update/request.rb +1 -1
  185. data/scenarios/refund_update/ruby.mako +32 -4
  186. data/scenarios/render_mako.rb +59 -4
  187. data/scenarios/reversal_create/definition.rb +1 -0
  188. data/scenarios/reversal_create/request.rb +9 -0
  189. data/scenarios/reversal_create/ruby.mako +45 -0
  190. data/scenarios/reversal_list/definition.rb +1 -0
  191. data/scenarios/reversal_list/request.rb +2 -0
  192. data/scenarios/reversal_list/ruby.mako +36 -0
  193. data/scenarios/reversal_show/definition.rb +1 -0
  194. data/scenarios/reversal_show/request.rb +2 -0
  195. data/scenarios/reversal_show/ruby.mako +37 -0
  196. data/scenarios/reversal_update/definition.rb +1 -0
  197. data/scenarios/reversal_update/request.rb +7 -0
  198. data/scenarios/reversal_update/ruby.mako +44 -0
  199. data/spec/balanced/error_spec.rb +7 -7
  200. data/spec/balanced/pager_spec.rb +10 -10
  201. data/spec/balanced/resources/api_key_spec.rb +6 -35
  202. data/spec/balanced/resources/bank_account_spec.rb +123 -218
  203. data/spec/balanced/resources/callback_spec.rb +12 -13
  204. data/spec/balanced/resources/card_hold_spec.rb +103 -0
  205. data/spec/balanced/resources/card_spec.rb +101 -27
  206. data/spec/balanced/resources/credit_spec.rb +69 -35
  207. data/spec/balanced/resources/customer_spec.rb +91 -271
  208. data/spec/balanced/resources/debit_spec.rb +95 -0
  209. data/spec/balanced/resources/marketplace_spec.rb +17 -170
  210. data/spec/balanced/resources/order_spec.rb +364 -0
  211. data/spec/balanced/resources/resource_spec.rb +25 -32
  212. data/spec/balanced_spec.rb +18 -36
  213. data/spec/client_spec.rb +7 -7
  214. data/spec/spec_helper.rb +19 -18
  215. data/spec/utils_spec.rb +5 -5
  216. metadata +123 -165
  217. data/examples/bank_account_debits.rb +0 -57
  218. data/examples/customers.rb +0 -114
  219. data/examples/events_and_callbacks.rb +0 -81
  220. data/examples/examples.rb +0 -162
  221. data/examples/exception_handling.rb +0 -44
  222. data/lib/balanced/resources/account.rb +0 -179
  223. data/lib/balanced/resources/hold.rb +0 -61
  224. data/lib/balanced/resources/invoice.rb +0 -11
  225. data/lib/balanced/resources/merchant.rb +0 -21
  226. data/lib/balanced/resources/transaction.rb +0 -17
  227. data/scenarios/account_add_card/definition.rb +0 -1
  228. data/scenarios/account_add_card/request.rb +0 -3
  229. data/scenarios/account_add_card/ruby.mako +0 -11
  230. data/scenarios/account_capture_hold/definition.rb +0 -1
  231. data/scenarios/account_capture_hold/request.rb +0 -3
  232. data/scenarios/account_capture_hold/ruby.mako +0 -11
  233. data/scenarios/account_create/definition.rb +0 -1
  234. data/scenarios/account_create/request.rb +0 -2
  235. data/scenarios/account_create/ruby.mako +0 -10
  236. data/scenarios/account_create_buyer/definition.rb +0 -1
  237. data/scenarios/account_create_buyer/request.rb +0 -5
  238. data/scenarios/account_create_buyer/ruby.mako +0 -13
  239. data/scenarios/account_create_debit/definition.rb +0 -1
  240. data/scenarios/account_create_debit/request.rb +0 -3
  241. data/scenarios/account_create_debit/ruby.mako +0 -11
  242. data/scenarios/account_create_hold/definition.rb +0 -1
  243. data/scenarios/account_create_hold/request.rb +0 -3
  244. data/scenarios/account_create_hold/ruby.mako +0 -11
  245. data/scenarios/account_create_merchant/definition.rb +0 -1
  246. data/scenarios/account_create_merchant/request.rb +0 -3
  247. data/scenarios/account_create_merchant/ruby.mako +0 -11
  248. data/scenarios/account_underwrite_business/definition.rb +0 -1
  249. data/scenarios/account_underwrite_business/request.rb +0 -17
  250. data/scenarios/account_underwrite_business/ruby.mako +0 -37
  251. data/scenarios/account_underwrite_person/definition.rb +0 -1
  252. data/scenarios/account_underwrite_person/request.rb +0 -18
  253. data/scenarios/account_underwrite_person/ruby.mako +0 -31
  254. data/scenarios/bank_account_find_and_credit/definition.rb +0 -1
  255. data/scenarios/bank_account_find_and_credit/request.rb +0 -5
  256. data/scenarios/bank_account_find_and_credit/ruby.mako +0 -13
  257. data/scenarios/bank_account_find_and_delete/definition.rb +0 -1
  258. data/scenarios/bank_account_find_and_delete/request.rb +0 -3
  259. data/scenarios/bank_account_find_and_delete/ruby.mako +0 -10
  260. data/scenarios/bank_account_invalid_routing_number/definition.rb +0 -1
  261. data/scenarios/bank_account_invalid_routing_number/request.rb +0 -11
  262. data/scenarios/bank_account_invalid_routing_number/ruby.mako +0 -16
  263. data/scenarios/card_invalidate/definition.rb +0 -1
  264. data/scenarios/card_invalidate/request.rb +0 -3
  265. data/scenarios/card_invalidate/ruby.mako +0 -10
  266. data/scenarios/credit_account_list/definition.rb +0 -1
  267. data/scenarios/credit_account_list/request.rb +0 -3
  268. data/scenarios/credit_account_list/ruby.mako +0 -10
  269. data/scenarios/credit_account_merchant_create/definition.rb +0 -1
  270. data/scenarios/credit_account_merchant_create/request.rb +0 -5
  271. data/scenarios/credit_account_merchant_create/ruby.mako +0 -12
  272. data/scenarios/credit_bank_account_list/request.rb +0 -5
  273. data/scenarios/credit_bank_account_list/ruby.mako +0 -12
  274. data/scenarios/credit_create_existing_bank_account/request.rb +0 -5
  275. data/scenarios/credit_create_existing_bank_account/ruby.mako +0 -12
  276. data/scenarios/credit_create_new_bank_account/request.rb +0 -10
  277. data/scenarios/credit_create_new_bank_account/ruby.mako +0 -21
  278. data/scenarios/credit_customer_list/definition.rb +0 -1
  279. data/scenarios/credit_customer_list/request.rb +0 -4
  280. data/scenarios/credit_customer_list/ruby.mako +0 -12
  281. data/scenarios/credit_failed_state/definition.rb +0 -1
  282. data/scenarios/credit_failed_state/request.rb +0 -10
  283. data/scenarios/credit_failed_state/ruby.mako +0 -18
  284. data/scenarios/credit_paid_state/definition.rb +0 -1
  285. data/scenarios/credit_paid_state/request.rb +0 -11
  286. data/scenarios/credit_paid_state/ruby.mako +0 -19
  287. data/scenarios/credit_pending_state/definition.rb +0 -1
  288. data/scenarios/credit_pending_state/request.rb +0 -9
  289. data/scenarios/credit_pending_state/ruby.mako +0 -17
  290. data/scenarios/customer_add_bank_account/request.rb +0 -3
  291. data/scenarios/customer_add_bank_account/ruby.mako +0 -11
  292. data/scenarios/customer_add_card/request.rb +0 -3
  293. data/scenarios/customer_add_card/ruby.mako +0 -11
  294. data/scenarios/customer_capture_hold/definition.rb +0 -1
  295. data/scenarios/customer_capture_hold/request.rb +0 -3
  296. data/scenarios/customer_capture_hold/ruby.mako +0 -0
  297. data/scenarios/customer_create_debit/definition.rb +0 -1
  298. data/scenarios/customer_create_debit/request.rb +0 -3
  299. data/scenarios/customer_create_debit/ruby.mako +0 -11
  300. data/scenarios/customer_create_hold/definition.rb +0 -1
  301. data/scenarios/customer_create_hold/request.rb +0 -3
  302. data/scenarios/customer_create_hold/ruby.mako +0 -11
  303. data/scenarios/customer_credit/definition.rb +0 -1
  304. data/scenarios/customer_credit/request.rb +0 -2
  305. data/scenarios/customer_credit/ruby.mako +0 -8
  306. data/scenarios/debit_account_list/definition.rb +0 -1
  307. data/scenarios/debit_account_list/request.rb +0 -3
  308. data/scenarios/debit_account_list/ruby.mako +0 -10
  309. data/scenarios/debit_create/definition.rb +0 -1
  310. data/scenarios/debit_create/request.rb +0 -5
  311. data/scenarios/debit_create/ruby.mako +0 -15
  312. data/scenarios/debit_customer_list/definition.rb +0 -1
  313. data/scenarios/debit_customer_list/request.rb +0 -4
  314. data/scenarios/debit_customer_list/ruby.mako +0 -12
  315. data/scenarios/debit_refund/definition.rb +0 -1
  316. data/scenarios/debit_refund/request.rb +0 -3
  317. data/scenarios/debit_refund/ruby.mako +0 -10
  318. data/scenarios/delete.rb +0 -7
  319. data/scenarios/event_replay/definition.rb +0 -0
  320. data/scenarios/event_replay/request.rb +0 -1
  321. data/scenarios/event_replay/ruby.mako +0 -0
  322. data/scenarios/execute.rb +0 -27
  323. data/scenarios/hold_account_list/definition.rb +0 -1
  324. data/scenarios/hold_account_list/request.rb +0 -3
  325. data/scenarios/hold_account_list/ruby.mako +0 -10
  326. data/scenarios/hold_capture/definition.rb +0 -1
  327. data/scenarios/hold_capture/request.rb +0 -5
  328. data/scenarios/hold_capture/ruby.mako +0 -15
  329. data/scenarios/hold_create/definition.rb +0 -1
  330. data/scenarios/hold_create/request.rb +0 -5
  331. data/scenarios/hold_create/ruby.mako +0 -14
  332. data/scenarios/hold_customer_list/definition.rb +0 -1
  333. data/scenarios/hold_customer_list/request.rb +0 -3
  334. data/scenarios/hold_customer_list/ruby.mako +0 -11
  335. data/scenarios/hold_list/definition.rb +0 -1
  336. data/scenarios/hold_list/request.rb +0 -4
  337. data/scenarios/hold_list/ruby.mako +0 -11
  338. data/scenarios/hold_show/definition.rb +0 -1
  339. data/scenarios/hold_show/request.rb +0 -2
  340. data/scenarios/hold_show/ruby.mako +0 -10
  341. data/scenarios/hold_update/definition.rb +0 -1
  342. data/scenarios/hold_update/request.rb +0 -7
  343. data/scenarios/hold_update/ruby.mako +0 -16
  344. data/scenarios/hold_void/definition.rb +0 -1
  345. data/scenarios/hold_void/request.rb +0 -3
  346. data/scenarios/hold_void/ruby.mako +0 -10
  347. data/scenarios/refund_account_list/definition.rb +0 -1
  348. data/scenarios/refund_account_list/request.rb +0 -3
  349. data/scenarios/refund_account_list/ruby.mako +0 -10
  350. data/scenarios/refund_customer_list/definition.rb +0 -1
  351. data/scenarios/refund_customer_list/request.rb +0 -3
  352. data/scenarios/refund_customer_list/ruby.mako +0 -11
  353. data/scenarios/render.rb +0 -32
  354. data/scenarios/render_one.rb +0 -32
  355. data/spec/balanced/resources/account_spec.rb +0 -636
  356. data/spec/balanced/resources/hold_spec.rb +0 -48
  357. data/spec/balanced/resources/merchant_spec.rb +0 -6
  358. data/spec/scenarios_spec.rb +0 -39
  359. data/upload_docs.rb +0 -40
@@ -1,57 +0,0 @@
1
- """
2
- Learn how to authenticate a bank account so you can debit with it.
3
- """
4
- cwd = File.dirname(File.dirname(File.expand_path(__FILE__)))
5
- $:.unshift(cwd + "/lib")
6
- require 'rubygems'
7
- require 'balanced'
8
-
9
- host = ENV.fetch('BALANCED_HOST') { nil }
10
- options = {}
11
- if host
12
- options[:scheme] = 'http'
13
- options[:host] = host
14
- options[:port] = 5000
15
- end
16
-
17
- Balanced.configure(nil, options)
18
-
19
- # create a new marketplace
20
- api_key = Balanced::ApiKey.new.save
21
- Balanced.configure(api_key.secret)
22
- marketplace = Balanced::Marketplace.new.save
23
-
24
- # create a bank account
25
- bank_account = marketplace.create_bank_account(
26
- :account_number => "1234567890",
27
- :bank_code => "12",
28
- :name => "Jack Q Merchant"
29
- )
30
- account = marketplace.create_account()
31
- account.add_bank_account(bank_account.uri)
32
-
33
- puts "you can't debit until you authenticate"
34
- begin
35
- account.debit(:amount => 100)
36
- rescue Balanced::Error => ex
37
- puts "Debit failed, %s" % ex.message
38
- end
39
-
40
- # authenticate
41
- verification = bank_account.verify
42
-
43
- begin
44
- verification.confirm(1,2)
45
- rescue Balanced::BankAccountVerificationFailure => ex
46
- puts 'Authentication error , %s' % ex.message
47
- puts "PROTIP: for TEST bank accounts the valid amount is always 1 and 1"
48
- end
49
- verification = bank_account.verifications.find(:first).first
50
-
51
- raise "unpossible" if verification.confirm(1, 1).state != 'verified'
52
- debit = account.debit(:amount => 100)
53
- puts "debited the bank account %s for %d cents" % [
54
- debit.source.uri,
55
- debit.amount
56
- ]
57
- puts "and there you have it"
@@ -1,114 +0,0 @@
1
- cwd = File.dirname(File.dirname(File.expand_path(__FILE__)))
2
- $:.unshift(cwd + "/lib")
3
- require 'rubygems'
4
- require 'balanced'
5
-
6
- begin
7
- Balanced::Card
8
- rescue NameError
9
- raise "wtf"
10
- end
11
-
12
- host = ENV.fetch('BALANCED_HOST') { nil }
13
- options = {}
14
- if host
15
- options[:scheme] = 'http'
16
- options[:host] = host
17
- options[:port] = 5000
18
- end
19
-
20
- Balanced.configure(nil, options)
21
-
22
- puts "create our new api key"
23
- api_key = Balanced::ApiKey.new.save
24
- puts "Our secret is: ", api_key.secret
25
- secret = api_key.secret
26
-
27
- puts "configure with our secret #{secret}"
28
- Balanced.configure(secret)
29
-
30
- puts "create our marketplace"
31
- begin
32
- marketplace = Balanced::Marketplace.new.save
33
- rescue Balanced::Conflict => ex
34
- marketplace = Balanced::Marketplace.mine
35
- end
36
-
37
- puts "create a customer"
38
- #
39
- customer = marketplace.create_customer(
40
- :name => "Bill",
41
- :email => "bill@bill.com",
42
- :business_name => "Bill Inc.",
43
- :ssn_last4 => "1234",
44
- :address => {
45
- :line1 => "1234 1st Street",
46
- :city => "San Francisco",
47
- :state => "CA"
48
- }
49
- ).save
50
-
51
- puts "our customer uri is #{customer.uri}"
52
-
53
- puts "create a card and a bank account for our customer"
54
-
55
- bank_account = marketplace.create_bank_account(
56
- :account_number => "1234567980",
57
- :bank_code => "321174811",
58
- :name => "Jack Q Merchant"
59
- )
60
-
61
- card = marketplace.create_card(
62
- :card_number => "4111111111111111",
63
- :expiration_month => "12",
64
- :expiration_year => "2015"
65
- ).save
66
-
67
- puts "our bank account uri is #{bank_account.uri}"
68
- puts "our card uri is #{card.uri}"
69
-
70
- puts "associate the newly created bank account and card to our customer"
71
-
72
- customer.add_card(card)
73
- customer.add_bank_account(bank_account)
74
-
75
- puts "check and make sure our customer now has a card and bank account listed"
76
-
77
- raise "customer's cards should not be empty" unless customer.cards.any?
78
- raise "customer's bank accounts should not be empty" unless customer.bank_accounts.any?
79
-
80
- puts "create a debit on our customer"
81
-
82
- customer.debit(
83
- :amount => 5000,
84
- :description => "new debit"
85
- )
86
-
87
- puts "check to make sure debit is added"
88
-
89
- raise "customer should not have 0 debits" unless customer.debits.any?
90
- raise "customer debit should be 5000" unless customer.debits.first.amount == 5000
91
-
92
- puts "create a credit on our customer"
93
-
94
- customer.credit(
95
- :amount => 2500,
96
- :description => "new credit"
97
- )
98
-
99
- puts "check to make sure credit is added"
100
-
101
- raise "customer should not have 0 credits" unless customer.credits.any?
102
- raise "customer should be 2500" unless customer.credits.first.amount == 2500
103
-
104
- puts "check to see what is the active card for a customer"
105
-
106
- raise "active card is incorrect" unless customer.active_card.id == card.id
107
-
108
- puts "check to see what is the active bank_account for a customer"
109
-
110
- raise "active bank account is incorrect" unless customer.active_bank_account.id == bank_account.id
111
-
112
-
113
-
114
-
@@ -1,81 +0,0 @@
1
- """
2
- Welcome weary traveller. Sick of polling for state changes? Well today have I
3
- got good news for you. Run this example below to see how to get yourself some
4
- callback goodness and to understand how events work.
5
- """
6
- cwd = File.dirname(File.dirname(File.expand_path(__FILE__)))
7
- $:.unshift(cwd + "/lib")
8
- require 'rubygems'
9
- require 'balanced'
10
- require 'net/http'
11
- require 'uri'
12
- require 'json'
13
-
14
- api_key = Balanced::ApiKey.new.save
15
- Balanced.configure(api_key.secret)
16
- marketplace = Balanced::Marketplace.new.save
17
-
18
- # mumble, let's create a requestb.in
19
- request_bin = Net::HTTP.post_form(URI.parse('http://requestb.in/api/v1/bins'), {})
20
- response = JSON.parse request_bin.body
21
- bin_name = response['name']
22
- callback_url = 'http://requestb.in/' + bin_name
23
- requests_url = 'http://requestb.in/api/v1/bins/%s/requests' % bin_name
24
-
25
- puts 'let\'s create a callback'
26
- marketplace.create_callback(
27
- :url => callback_url
28
- )
29
-
30
- puts 'let\'s create a card and associate it with a new account'
31
- card = Balanced::Card.new(
32
- :expiration_month => '12',
33
- :security_code => '123',
34
- :card_number => '5105105105105100',
35
- :expiration_year => '2020'
36
- ).save()
37
- buyer = Balanced::Account.new(
38
- 'card_uri' => card.uri
39
- ).save()
40
-
41
- puts 'generate a debit (which implicitly creates and captures a hold)'
42
- buyer.debit(:amount => 100)
43
-
44
- puts 'event creation is an async operation, let\'s wait until we have ' \
45
- 'some events!'
46
- while Balanced::Event.find(:all).length == 0
47
- puts 'Zzzz'
48
- sleep(0)
49
- end
50
-
51
- puts 'Woop, we got some events, let us see what there is to look at'
52
- for event in Balanced::Event.find(:all)
53
- puts 'this was a %s event, it occurred at %s, the callback has a ' \
54
- 'status of %s' % [
55
- event.type,
56
- event.occurred_at,
57
- event.callback_statuses
58
- ]
59
- end
60
-
61
- puts 'you can inspect each event to see the logs'
62
- event = Balanced::Event.find(:first)
63
- for callback in event.callbacks
64
- puts 'inspecting callback to %s for event %s' % [
65
- callback.url,
66
- event.type
67
- ]
68
-
69
- for log in callback.logs
70
- puts 'this attempt to the callback has a status of %s' % [log.status]
71
- end
72
- end
73
-
74
- puts 'ok, let\'s check with requestb.in to see if our callbacks fired at %s' % callback_url
75
- uri = URI.parse(requests_url)
76
- request_bin = Net::HTTP.get_response(uri)
77
- response = JSON.parse request_bin.body
78
- puts 'we received %s callbacks, you can view them at http://requestb.in/%s?inspect' % [
79
- response.length,
80
- bin_name,
81
- ]
data/examples/examples.rb DELETED
@@ -1,162 +0,0 @@
1
- cwd = File.dirname(File.dirname(File.expand_path(__FILE__)))
2
- $:.unshift(cwd + "/lib")
3
- require 'rubygems'
4
- require 'balanced'
5
-
6
- begin
7
- Balanced::Card
8
- rescue NameError
9
- raise "wtf"
10
- end
11
-
12
- host = ENV.fetch('BALANCED_HOST') { nil }
13
- options = {}
14
- if host
15
- options[:scheme] = 'http'
16
- options[:host] = host
17
- options[:port] = 5000
18
- end
19
-
20
- Balanced.configure(nil, options)
21
-
22
- puts "create our new api key"
23
- api_key = Balanced::ApiKey.new.save
24
- puts "Our secret is: ", api_key.secret
25
- secret = api_key.secret
26
-
27
- puts "configure with our secret #{secret}"
28
- Balanced.configure(secret)
29
-
30
- puts "create our marketplace"
31
- begin
32
- marketplace = Balanced::Marketplace.new.save
33
- rescue Balanced::Conflict => ex
34
- marketplace = Balanced::Marketplace.mine
35
- end
36
-
37
- raise "Merchant.me should not be nil" if Balanced::Merchant.me.nil?
38
- puts "what's my merchant?, easy: Merchant.me: ", Balanced::Merchant.me
39
-
40
- # what's my marketplace?
41
- raise "Marketplace.mine should not be nil" if Balanced::Marketplace.mine.nil?
42
- puts "what's my marketplace?, easy: Marketplace.mine: ", Balanced::Marketplace.mine
43
-
44
- puts "My marketplace's name is: #{marketplace.name}"
45
- random_name = (0...10).map{ ('a'..'z').to_a[rand(26)] }.join
46
- puts "Changing it to #{random_name}"
47
- marketplace.name = random_name
48
- marketplace.save
49
- puts "My marketplace name is now: #{Balanced::Marketplace.mine.name}"
50
- raise "Marketplace name is NOT #{random_name}!" if Balanced::Marketplace.mine.name != random_name
51
-
52
- puts "cool! let's create a new card."
53
- card = Balanced::Card.new(
54
- :card_number => "5105105105105100",
55
- :expiration_month => "12",
56
- :expiration_year => "2015"
57
- ).save
58
- puts "Our card uri: #{card.uri}"
59
-
60
- puts "create our **buyer** account"
61
- buyer = marketplace.create_buyer(
62
- :email_address => "buyer@example.org",
63
- :card_uri => card.uri
64
- )
65
- puts "our buyer account: #{buyer.uri}"
66
-
67
- puts "hold some amount of funds on the buyer, lets say 15$"
68
- the_hold = buyer.hold(:amount => 1500)
69
-
70
- puts "ok, no more holds! lets just capture it (for the full amount)"
71
- debit = the_hold.capture
72
-
73
- puts "hmm, how much money do i have in escrow? should equal the debit amount"
74
- marketplace = marketplace.reload
75
- raise "1500 is not in escrow! this is wrong" if marketplace.in_escrow != 1500
76
- puts "i have #{marketplace.in_escrow} in escrow!"
77
-
78
- puts "cool. now let me refund the full amount"
79
- refund = debit.refund() # the full amount!
80
-
81
- puts "ok, we have a merchant that's signing up, let's create an account for them " \
82
- "first, lets create their bank account."
83
-
84
- bank_account = marketplace.create_bank_account(
85
- :account_number => "1234567890",
86
- :routing_number => "322271627",
87
- :name => "Jack Q Merchant"
88
- )
89
-
90
- merchant = marketplace.create_merchant(
91
- :email_address => "merchant@example.org",
92
- :merchant => {
93
- :type => "person",
94
- :name => "Billy Jones",
95
- :street_address => "801 High St.",
96
- :postal_code => "94301",
97
- :country => "USA",
98
- :dob => "1842-01",
99
- :phone_number => "+16505551234"
100
- },
101
- :bank_account_uri => bank_account.uri,
102
- :name => "Jack Q Merchant"
103
- )
104
-
105
- puts "oh our buyer is interested in buying something for 530.00$"
106
- another_debit = buyer.debit(
107
- :amount => 53000,
108
- :appears_on_statement_as => "MARKETPLACE.COM"
109
- )
110
-
111
- puts "lets credit our merchant 110.00$"
112
- credit = merchant.credit(
113
- :amount => 11000,
114
- :description => "Buyer purchased something on MARKETPLACE.COM"
115
- )
116
-
117
- puts "lets assume the marketplace charges 15%, so it earned ~20"
118
- mp_credit = marketplace.owner_account.credit(
119
- :amount => 2000,
120
- :description => "Our commission from MARKETPLACE.COM"
121
- )
122
-
123
- puts "ok lets invalid a card"
124
- card.invalidate
125
-
126
- raise "This card is INCORRECTLY VALID" if card.is_valid
127
-
128
- puts "invalidating a bank account"
129
- bank_account.invalidate
130
-
131
- raise "This card is INCORRECTLY VALID" if bank_account.is_valid
132
-
133
- puts "let's create a bank account not associated to an account"
134
- bank_account = Balanced::BankAccount.new(
135
- :account_number => "9876543210",
136
- :routing_number => "021000021",
137
- :name => "Jake Skellington",
138
- :type => "checking"
139
- ).save
140
-
141
- raise "Should not have an account" if bank_account.has_account?
142
-
143
- puts "now let's credit it, the super-simple way"
144
- credit = bank_account.credit(
145
- :amount => 500
146
- )
147
-
148
- raise "Incorrect value for credit" if credit.amount != 500
149
-
150
- puts "That was still too hard -- let's credit without creating a bank account first"
151
- credit = Balanced::Credit.new(
152
- :amount => 700,
153
- :description => "Amazing",
154
- :bank_account => {
155
- :account_number => "55555555",
156
- :bank_code => "021000021",
157
- :name => "Wanda Wandy",
158
- :type => "checking"
159
- }
160
- ).save
161
- raise "OOPS -- that was hard after all" if (credit.amount != 700 or
162
- credit.created_at.nil?)
@@ -1,44 +0,0 @@
1
- cwd = File.dirname(File.dirname(File.expand_path(__FILE__)))
2
- $:.unshift(cwd + "/lib")
3
- require 'rubygems'
4
- require 'balanced'
5
-
6
- begin
7
- Balanced::Card
8
- rescue NameError
9
- raise "wtf"
10
- end
11
-
12
- require 'balanced'
13
-
14
- Balanced.configure("8bb66df4e80711e290df026ba7cd33d0")
15
-
16
- puts "create our marketplace"
17
- begin
18
- marketplace = Balanced::Marketplace.new.save
19
- rescue Balanced::Conflict => ex
20
- # balanced automatically maps the body's response
21
- # for convenience, so for example:
22
- puts ex.response[:body]
23
- # you'll notice this hash is mapped to nice attributes
24
- raise "Not Present" if ex.response[:body]["status"] != ex.status
25
- # you can find all of the attributes here:
26
- # https://docs.balancedpayments.com/current/api?language=bash#errors
27
- marketplace = Balanced::Marketplace.mine
28
- end
29
-
30
- # create a new card
31
-
32
- card = Balanced::Card.new(
33
- :card_number => "5105105105105100",
34
- :expiration_month => "12",
35
- :expiration_year => "2015",
36
- :phone_number => "INCORRECT PHONE NUMBER"
37
- )
38
-
39
- begin
40
- card.save
41
- rescue Balanced::BadRequest => ex
42
- puts ex.extras[:phone_number]
43
- puts "All the fields that have errors are: #{ex.extras.keys}"
44
- end