razorpay 2.4.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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/)**