razorpay 2.4.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +8 -0
  3. data/.github/workflows/ruby.yml +38 -0
  4. data/CHANGELOG.md +19 -0
  5. data/README.md +29 -140
  6. data/documents/Invoice.md +531 -0
  7. data/documents/addon.md +169 -0
  8. data/documents/card.md +611 -0
  9. data/documents/customer.md +161 -0
  10. data/documents/emandate.md +484 -0
  11. data/documents/fund.md +87 -0
  12. data/documents/items.md +184 -0
  13. data/documents/order.md +230 -0
  14. data/documents/papernach.md +718 -0
  15. data/documents/payment.md +636 -0
  16. data/documents/paymentLink.md +1045 -0
  17. data/documents/paymentVerification.md +79 -0
  18. data/documents/plan.md +184 -0
  19. data/documents/qrcode.md +441 -0
  20. data/documents/refund.md +324 -0
  21. data/documents/registerEmandate.md +445 -0
  22. data/documents/registerNach.md +661 -0
  23. data/documents/settlement.md +477 -0
  24. data/documents/subscriptions.md +750 -0
  25. data/documents/tokens.md +208 -0
  26. data/documents/transfers.md +684 -0
  27. data/documents/upi.md +548 -0
  28. data/documents/virtualAccount.md +586 -0
  29. data/lib/razorpay/addon.rb +4 -0
  30. data/lib/razorpay/constants.rb +1 -1
  31. data/lib/razorpay/customer.rb +15 -0
  32. data/lib/razorpay/fund_account.rb +19 -0
  33. data/lib/razorpay/invoice.rb +8 -0
  34. data/lib/razorpay/item.rb +34 -0
  35. data/lib/razorpay/order.rb +10 -0
  36. data/lib/razorpay/payment.rb +52 -0
  37. data/lib/razorpay/payment_link.rb +36 -0
  38. data/lib/razorpay/qr_code.rb +34 -0
  39. data/lib/razorpay/refund.rb +4 -0
  40. data/lib/razorpay/request.rb +13 -6
  41. data/lib/razorpay/settlement.rb +39 -0
  42. data/lib/razorpay/subscription.rb +24 -0
  43. data/lib/razorpay/subscription_registration.rb +16 -0
  44. data/lib/razorpay/transfer.rb +35 -0
  45. data/lib/razorpay/utility.rb +7 -2
  46. data/lib/razorpay/virtual_account.rb +14 -6
  47. data/lib/razorpay.rb +7 -0
  48. data/test/fixtures/addon_collection.json +60 -0
  49. data/test/fixtures/create_json_payment.json +13 -0
  50. data/test/fixtures/delete_token.json +3 -0
  51. data/test/fixtures/downtimes_collection.json +21 -0
  52. data/test/fixtures/empty.json +2 -0
  53. data/test/fixtures/fake_addon.json +3 -3
  54. data/test/fixtures/fake_direct_transfer.json +32 -0
  55. data/test/fixtures/fake_downtime.json +14 -0
  56. data/test/fixtures/fake_fund_account.json +18 -0
  57. data/test/fixtures/fake_instant_settlement.json +19 -0
  58. data/test/fixtures/fake_item.json +9 -0
  59. data/test/fixtures/fake_order_transfers.json +88 -0
  60. data/test/fixtures/fake_otp_generate.json +19 -0
  61. data/test/fixtures/fake_otp_resend.json +7 -0
  62. data/test/fixtures/fake_otp_submit.json +5 -0
  63. data/test/fixtures/fake_payment_link.json +40 -0
  64. data/test/fixtures/fake_pending_update.json +30 -0
  65. data/test/fixtures/fake_qrcode.json +20 -0
  66. data/test/fixtures/fake_qrcode_close.json +22 -0
  67. data/test/fixtures/fake_recurring.json +5 -0
  68. data/test/fixtures/fake_refund.json +1 -1
  69. data/test/fixtures/fake_settlement.json +11 -0
  70. data/test/fixtures/fake_settlement_on_demand.json +39 -0
  71. data/test/fixtures/fake_subscription_pause.json +19 -0
  72. data/test/fixtures/fake_subscription_registration.json +91 -0
  73. data/test/fixtures/fake_subscription_resume.json +19 -0
  74. data/test/fixtures/fake_token.json +31 -0
  75. data/test/fixtures/fake_transfer.json +18 -0
  76. data/test/fixtures/fake_transfer_reverse.json +15 -0
  77. data/test/fixtures/fake_update_payment.json +39 -0
  78. data/test/fixtures/fake_virtual_account_allowed.json +46 -0
  79. data/test/fixtures/fake_virtual_account_receiver.json +46 -0
  80. data/test/fixtures/fund_collection.json +20 -0
  81. data/test/fixtures/item_collection.json +24 -0
  82. data/test/fixtures/payment_collection.json +1 -1
  83. data/test/fixtures/payment_link_collection.json +43 -0
  84. data/test/fixtures/payment_link_response.json +3 -0
  85. data/test/fixtures/qrcode_collection.json +50 -0
  86. data/test/fixtures/qrcode_payments_collection.json +74 -0
  87. data/test/fixtures/settlement_collection.json +26 -0
  88. data/test/fixtures/settlement_instant_collection.json +84 -0
  89. data/test/fixtures/settlement_report_collection.json +117 -0
  90. data/test/fixtures/success.json +3 -0
  91. data/test/fixtures/tokens_collection.json +36 -0
  92. data/test/fixtures/transfer_settlements_collection.json +38 -0
  93. data/test/fixtures/transfers_collection.json +41 -0
  94. data/test/razorpay/test_addon.rb +15 -15
  95. data/test/razorpay/test_customer.rb +27 -3
  96. data/test/razorpay/test_fund_account.rb +42 -0
  97. data/test/razorpay/test_invoice.rb +15 -2
  98. data/test/razorpay/test_item.rb +66 -0
  99. data/test/razorpay/test_order.rb +24 -1
  100. data/test/razorpay/test_payment.rb +184 -8
  101. data/test/razorpay/test_payment_link.rb +83 -0
  102. data/test/razorpay/test_plan.rb +2 -2
  103. data/test/razorpay/test_qr_code.rb +63 -0
  104. data/test/razorpay/test_refund.rb +16 -2
  105. data/test/razorpay/test_settlement.rb +76 -0
  106. data/test/razorpay/test_subscription.rb +72 -9
  107. data/test/razorpay/test_subscription_registration.rb +58 -0
  108. data/test/razorpay/test_transfer.rb +77 -0
  109. data/test/razorpay/test_utility.rb +32 -0
  110. data/test/razorpay/test_virtual_account.rb +64 -17
  111. data/test/test_helper.rb +6 -0
  112. metadata +138 -9
  113. data/.travis.yml +0 -22
  114. data/test/razorpay/test_errors.rb +0 -19
@@ -0,0 +1,477 @@
1
+ ## Settlements
2
+
3
+ ```rb
4
+ require "razorpay"
5
+
6
+ Razorpay.setup('key_id', 'key_secret')
7
+ ```
8
+
9
+ ### Fetch all settlements
10
+
11
+ ```rb
12
+ para_attr = {"count": 2}
13
+
14
+ Razorpay::Settlement.all(para_attr)
15
+ ```
16
+
17
+ **Parameters:**
18
+
19
+
20
+ | Name | Type | Description |
21
+ |-------|-----------|--------------------------------------------------|
22
+ | from | timestamp | timestamp after which the settlement were created |
23
+ | to | timestamp | timestamp before which the settlement were created |
24
+ | count | integer | number of settlements to fetch (default: 10) |
25
+ | skip | integer | number of settlements to be skipped (default: 0) |
26
+
27
+ **Response:**
28
+ ```json
29
+ {
30
+ "entity": "collection",
31
+ "count": 1,
32
+ "items": [
33
+ {
34
+ "id": "setl_DGlQ1Rj8os78Ec",
35
+ "entity": "settlement",
36
+ "amount": 9973635,
37
+ "status": "processed",
38
+ "fees": 471699,
39
+ "tax": 42070,
40
+ "utr": "1568176960vxp0rj",
41
+ "created_at": 1568176960
42
+ }
43
+ ]
44
+ }
45
+ ```
46
+
47
+ -------------------------------------------------------------------------------------------------------
48
+
49
+ ### Fetch a settlement
50
+
51
+ ```rb
52
+ settlementId = "setl_DGlQ1Rj8os78Ec"
53
+
54
+ Razorpay::Settlement.fetch(settlementId)
55
+ ```
56
+
57
+ **Parameters:**
58
+
59
+ | Name | Type | Description |
60
+ |---------------|-------------|---------------------------------------------|
61
+ | settlementId* | string | The id of the settlement to be fetched |
62
+
63
+ **Response:**
64
+ ```json
65
+ {
66
+ "id": "setl_DGlQ1Rj8os78Ec",
67
+ "entity": "settlement",
68
+ "amount": 9973635,
69
+ "status": "processed",
70
+ "fees": 471699,
71
+ "tax": 42070,
72
+ "utr": "1568176960vxp0rj",
73
+ "created_at": 1568176960
74
+ }
75
+ ```
76
+ -------------------------------------------------------------------------------------------------------
77
+
78
+ ### Settlement report for a month
79
+
80
+ ```rb
81
+ para_attr = {
82
+ "year": 2020,
83
+ "month": 9
84
+ }
85
+ Razorpay::Settlement.reports(para_attr)
86
+ ```
87
+
88
+ **Parameters:**
89
+
90
+ | Name | Type | Description |
91
+ |---------------|-------------|---------------------------------------------|
92
+ | year* | integer | The year the settlement was received in the `YYYY` format. For example, `2020` |
93
+ | month* | integer | The month the settlement was received in the `MM` format. For example, `09` |
94
+ | day | integer | The date the settlement was received in the `DD` format. For example, `01` |
95
+ | count | integer | number of settlements to fetch (default: 10) |
96
+ | skip | integer | number of settlements to be skipped (default: 0) |
97
+
98
+ **Response:**
99
+ ```json
100
+ {
101
+ "entity": "collection",
102
+ "count": 4,
103
+ "items": [
104
+ {
105
+ "entity_id": "pay_DEXrnipqTmWVGE",
106
+ "type": "payment",
107
+ "debit": 0,
108
+ "credit": 97100,
109
+ "amount": 100000,
110
+ "currency": "INR",
111
+ "fee": 2900,
112
+ "tax": 0,
113
+ "on_hold": false,
114
+ "settled": true,
115
+ "created_at": 1567692556,
116
+ "settled_at": 1568176960,
117
+ "settlement_id": "setl_DGlQ1Rj8os78Ec",
118
+ "posted_at": null,
119
+ "credit_type": "default",
120
+ "description": "Recurring Payment via Subscription",
121
+ "notes": "{}",
122
+ "payment_id": null,
123
+ "settlement_utr": "1568176960vxp0rj",
124
+ "order_id": "order_DEXrnRiR3SNDHA",
125
+ "order_receipt": null,
126
+ "method": "card",
127
+ "card_network": "MasterCard",
128
+ "card_issuer": "KARB",
129
+ "card_type": "credit",
130
+ "dispute_id": null
131
+ },
132
+ {
133
+ "entity_id": "rfnd_DGRcGzZSLyEdg1",
134
+ "type": "refund",
135
+ "debit": 242500,
136
+ "credit": 0,
137
+ "amount": 242500,
138
+ "currency": "INR",
139
+ "fee": 0,
140
+ "tax": 0,
141
+ "on_hold": false,
142
+ "settled": true,
143
+ "created_at": 1568107224,
144
+ "settled_at": 1568176960,
145
+ "settlement_id": "setl_DGlQ1Rj8os78Ec",
146
+ "posted_at": null,
147
+ "credit_type": "default",
148
+ "description": null,
149
+ "notes": "{}",
150
+ "payment_id": "pay_DEXq1pACSqFxtS",
151
+ "settlement_utr": "1568176960vxp0rj",
152
+ "order_id": "order_DEXpmZgffXNvuI",
153
+ "order_receipt": null,
154
+ "method": "card",
155
+ "card_network": "MasterCard",
156
+ "card_issuer": "KARB",
157
+ "card_type": "credit",
158
+ "dispute_id": null
159
+ },
160
+ {
161
+ "entity_id": "trf_DEUoCEtdsJgvl7",
162
+ "type": "transfer",
163
+ "debit": 100296,
164
+ "credit": 0,
165
+ "amount": 100000,
166
+ "currency": "INR",
167
+ "fee": 296,
168
+ "tax": 46,
169
+ "on_hold": false,
170
+ "settled": true,
171
+ "created_at": 1567681786,
172
+ "settled_at": 1568176960,
173
+ "settlement_id": "setl_DGlQ1Rj8os78Ec",
174
+ "posted_at": null,
175
+ "credit_type": "default",
176
+ "description": null,
177
+ "notes": null,
178
+ "payment_id": "pay_DEApNNTR6xmqJy",
179
+ "settlement_utr": "1568176960vxp0rj",
180
+ "order_id": null,
181
+ "order_receipt": null,
182
+ "method": null,
183
+ "card_network": null,
184
+ "card_issuer": null,
185
+ "card_type": null,
186
+ "dispute_id": null
187
+ },
188
+ {
189
+ "entity_id": "adj_EhcHONhX4ChgNC",
190
+ "type": "adjustment",
191
+ "debit": 0,
192
+ "credit": 1012,
193
+ "amount": 1012,
194
+ "currency": "INR",
195
+ "fee": 0,
196
+ "tax": 0,
197
+ "on_hold": false,
198
+ "settled": true,
199
+ "created_at": 1567681786,
200
+ "settled_at": 1568176960,
201
+ "settlement_id": "setl_DGlQ1Rj8os78Ec",
202
+ "posted_at": null,
203
+ "description": "test reason",
204
+ "notes": null,
205
+ "payment_id": null,
206
+ "settlement_utr": null,
207
+ "order_id": null,
208
+ "order_receipt": null,
209
+ "method": null,
210
+ "card_network": null,
211
+ "card_issuer": null,
212
+ "card_type": null,
213
+ "dispute_id": null
214
+ }
215
+ ]
216
+ }
217
+ ```
218
+ -------------------------------------------------------------------------------------------------------
219
+
220
+ ### Settlement recon
221
+
222
+ ```rb
223
+ para_attr = {
224
+ "year": 2020,
225
+ "month": 9,
226
+ "day":11
227
+ }
228
+ Razorpay::Settlement.reports(para_attr)
229
+ ```
230
+ ```
231
+ **Parameters:**
232
+
233
+ | Name | Type | Description |
234
+ |---------------|-------------|---------------------------------------------|
235
+ | year* | integer | The year the settlement was received in the `YYYY` format. For example, `2020` |
236
+ | month* | integer | The month the settlement was received in the `MM` format. For example, `09` |
237
+ | day | integer | The day the settlement was received in the `DD` format. For example, |
238
+
239
+ **Response:**
240
+ ```json
241
+ {
242
+ "entity": "collection",
243
+ "count": 4,
244
+ "items": [
245
+ {
246
+ "entity_id": "pay_DEXrnipqTmWVGE",
247
+ "type": "payment",
248
+ "debit": 0,
249
+ "credit": 97100,
250
+ "amount": 100000,
251
+ "currency": "INR",
252
+ "fee": 2900,
253
+ "tax": 0,
254
+ "on_hold": false,
255
+ "settled": true,
256
+ "created_at": 1567692556,
257
+ "settled_at": 1568176960,
258
+ "settlement_id": "setl_DGlQ1Rj8os78Ec",
259
+ "posted_at": null,
260
+ "credit_type": "default",
261
+ "description": "Recurring Payment via Subscription",
262
+ "notes": "{}",
263
+ "payment_id": null,
264
+ "settlement_utr": "1568176960vxp0rj",
265
+ "order_id": "order_DEXrnRiR3SNDHA",
266
+ "order_receipt": null,
267
+ "method": "card",
268
+ "card_network": "MasterCard",
269
+ "card_issuer": "KARB",
270
+ "card_type": "credit",
271
+ "dispute_id": null
272
+ },
273
+ {
274
+ "entity_id": "rfnd_DGRcGzZSLyEdg1",
275
+ "type": "refund",
276
+ "debit": 242500,
277
+ "credit": 0,
278
+ "amount": 242500,
279
+ "currency": "INR",
280
+ "fee": 0,
281
+ "tax": 0,
282
+ "on_hold": false,
283
+ "settled": true,
284
+ "created_at": 1568107224,
285
+ "settled_at": 1568176960,
286
+ "settlement_id": "setl_DGlQ1Rj8os78Ec",
287
+ "posted_at": null,
288
+ "credit_type": "default",
289
+ "description": null,
290
+ "notes": "{}",
291
+ "payment_id": "pay_DEXq1pACSqFxtS",
292
+ "settlement_utr": "1568176960vxp0rj",
293
+ "order_id": "order_DEXpmZgffXNvuI",
294
+ "order_receipt": null,
295
+ "method": "card",
296
+ "card_network": "MasterCard",
297
+ "card_issuer": "KARB",
298
+ "card_type": "credit",
299
+ "dispute_id": null
300
+ },
301
+ {
302
+ "entity_id": "trf_DEUoCEtdsJgvl7",
303
+ "type": "transfer",
304
+ "debit": 100296,
305
+ "credit": 0,
306
+ "amount": 100000,
307
+ "currency": "INR",
308
+ "fee": 296,
309
+ "tax": 46,
310
+ "on_hold": false,
311
+ "settled": true,
312
+ "created_at": 1567681786,
313
+ "settled_at": 1568176960,
314
+ "settlement_id": "setl_DGlQ1Rj8os78Ec",
315
+ "posted_at": null,
316
+ "credit_type": "default",
317
+ "description": null,
318
+ "notes": null,
319
+ "payment_id": "pay_DEApNNTR6xmqJy",
320
+ "settlement_utr": "1568176960vxp0rj",
321
+ "order_id": null,
322
+ "order_receipt": null,
323
+ "method": null,
324
+ "card_network": null,
325
+ "card_issuer": null,
326
+ "card_type": null,
327
+ "dispute_id": null
328
+ },
329
+ {
330
+ "entity_id": "adj_EhcHONhX4ChgNC",
331
+ "type": "adjustment",
332
+ "debit": 0,
333
+ "credit": 1012,
334
+ "amount": 1012,
335
+ "currency": "INR",
336
+ "fee": 0,
337
+ "tax": 0,
338
+ "on_hold": false,
339
+ "settled": true,
340
+ "created_at": 1567681786,
341
+ "settled_at": 1568176960,
342
+ "settlement_id": "setl_DGlQ1Rj8os78Ec",
343
+ "posted_at": null,
344
+ "description": "test reason",
345
+ "notes": null,
346
+ "payment_id": null,
347
+ "settlement_utr": null,
348
+ "order_id": null,
349
+ "order_receipt": null,
350
+ "method": null,
351
+ "card_network": null,
352
+ "card_issuer": null,
353
+ "card_type": null,
354
+ "dispute_id": null
355
+ }
356
+ ]
357
+ }
358
+ ```
359
+ -------------------------------------------------------------------------------------------------------
360
+
361
+ ### Create on-demand settlement
362
+
363
+ ```rb
364
+ param_attr = {
365
+ "amount": 1221,
366
+ "settle_full_balance": false,
367
+ "description": "Testing",
368
+ "notes": {
369
+ "notes_key_1": "Tea, Earl Grey, Hot",
370
+ "notes_key_2": "Tea, Earl Grey… decaf."
371
+ }
372
+ }
373
+ Razorpay::Settlement.create(param_attr)
374
+ ```
375
+
376
+ **Parameters:**
377
+
378
+ | Name | Type | Description |
379
+ |---------------|-------------|---------------------------------------------|
380
+ | amount*| integer | Maximum amount that can be settled |
381
+ | settle_full_balance* | boolean | true or false |
382
+ | description | string | The description may not be greater than 30 characters |
383
+ | notes | object | A key-value pair |
384
+
385
+ **Response:**
386
+ ```json
387
+ {
388
+ "id": "setlod_FNj7g2YS5J67Rz",
389
+ "entity": "settlement.ondemand",
390
+ "amount_requested": 200000,
391
+ "amount_settled": 0,
392
+ "amount_pending": 199410,
393
+ "amount_reversed": 0,
394
+ "fees": 590,
395
+ "tax": 90,
396
+ "currency": "INR",
397
+ "settle_full_balance": false,
398
+ "status": "initiated",
399
+ "description": "Need this to make vendor payments.",
400
+ "notes": {
401
+ "notes_key_1": "Tea, Earl Grey, Hot",
402
+ "notes_key_2": "Tea, Earl Grey… decaf."
403
+ },
404
+ "created_at": 1596771429,
405
+ "ondemand_payouts": {
406
+ "entity": "collection",
407
+ "count": 1,
408
+ "items": [
409
+ {
410
+ "id": "setlodp_FNj7g2cbvw8ueO",
411
+ "entity": "settlement.ondemand_payout",
412
+ "initiated_at": null,
413
+ "processed_at": null,
414
+ "reversed_at": null,
415
+ "amount": 200000,
416
+ "amount_settled": null,
417
+ "fees": 590,
418
+ "tax": 90,
419
+ "utr": null,
420
+ "status": "created",
421
+ "created_at": 1596771429
422
+ }
423
+ ]
424
+ }
425
+ }
426
+ ```
427
+ -------------------------------------------------------------------------------------------------------
428
+
429
+ ### Fetch all on-demand settlements
430
+
431
+ ```rb
432
+ para_attr = {"count":1}
433
+
434
+ Razorpay::Settlement.fetch_all_ondemand_settlement(para_attr)
435
+ ```
436
+ **Parameters:**
437
+
438
+ | Name | Type | Description |
439
+ |-------|-----------|--------------------------------------------------|
440
+ | from | timestamp | timestamp after which the payments were created |
441
+ | to | timestamp | timestamp before which the payments were created |
442
+ | count | integer | number of payments to fetch (default: 10) |
443
+ | skip | integer | number of payments to be skipped (default: 0) |
444
+
445
+ **Response:**<br>
446
+ For all on-demand settlements response please click [here](https://razorpay.com/docs/api/settlements/#fetch-all-on-demand-settlements)
447
+
448
+ -------------------------------------------------------------------------------------------------------
449
+
450
+ ### Fetch on-demand settlement by ID
451
+
452
+ ```rb
453
+ settlementId = "setl_DGlQ1Rj8os78Ec"
454
+
455
+ para_attr = {
456
+ "expand[]": "ondemand_payouts"
457
+ }
458
+
459
+ Razorpay::Settlement.fetch_ondemand_settlement_by_id(settlementId, para_attr);
460
+ ```
461
+
462
+ **Parameters:**
463
+
464
+ | Name | Type | Description |
465
+ |------------|--------|-----------------------------------|
466
+ | settlementId* | string | Settlement Id of the On-demand settlement|
467
+ |expand[] | string | Pass this if you want to fetch payout details as part of the response. Possible values is `ondemand_payouts`|
468
+
469
+ **Response:**
470
+ For on-demand settlement by ID response please click [here](https://razorpay.com/docs/api/settlements/#fetch-on-demand-settlements-by-id)
471
+
472
+ -------------------------------------------------------------------------------------------------------
473
+
474
+ **PN: * indicates mandatory fields**
475
+ <br>
476
+ <br>
477
+ **For reference click [here](https://razorpay.com/docs/api/settlements/)**