razorpay 3.2.2 → 3.2.3

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/README.md +2 -0
  4. data/documents/customer.md +242 -0
  5. data/documents/dispute.md +301 -0
  6. data/documents/documents.md +65 -0
  7. data/documents/order.md +71 -0
  8. data/documents/payment.md +253 -0
  9. data/documents/transfers.md +40 -0
  10. data/lib/razorpay/constants.rb +1 -1
  11. data/lib/razorpay/customer.rb +16 -0
  12. data/lib/razorpay/dispute.rb +26 -0
  13. data/lib/razorpay/document.rb +19 -0
  14. data/lib/razorpay/order.rb +8 -0
  15. data/lib/razorpay/payment.rb +4 -0
  16. data/lib/razorpay/transfer.rb +4 -0
  17. data/lib/razorpay.rb +2 -0
  18. data/test/fixtures/dispute_collection.json +67 -0
  19. data/test/fixtures/dispute_error.json +10 -0
  20. data/test/fixtures/document_error.json +10 -0
  21. data/test/fixtures/error_customer.json +10 -0
  22. data/test/fixtures/error_eligibility.json +10 -0
  23. data/test/fixtures/error_eligibility_check.json +10 -0
  24. data/test/fixtures/fake_bank_account.json +9 -0
  25. data/test/fixtures/fake_dispute.json +29 -0
  26. data/test/fixtures/fake_document.json +9 -0
  27. data/test/fixtures/fake_eligiblity.json +79 -0
  28. data/test/fixtures/fake_fulfillment.json +10 -0
  29. data/test/fixtures/fake_payment_expanded_details.json +38 -0
  30. data/test/fixtures/fake_payment_expanded_details_card.json +50 -0
  31. data/test/fixtures/fake_rto.json +15 -0
  32. data/test/fixtures/order_error.json +10 -0
  33. data/test/fixtures/payment_error.json +10 -0
  34. data/test/fixtures/reversals_collection.json +22 -0
  35. data/test/fixtures/transfer_error.json +10 -0
  36. data/test/razorpay/test_customer.rb +105 -0
  37. data/test/razorpay/test_dispute.rb +98 -0
  38. data/test/razorpay/test_document.rb +27 -0
  39. data/test/razorpay/test_order.rb +43 -1
  40. data/test/razorpay/test_payment.rb +23 -1
  41. data/test/razorpay/test_transfer.rb +17 -0
  42. metadata +47 -3
data/documents/order.md CHANGED
@@ -275,6 +275,77 @@ Razorpay::Order.edit(orderId,para_attr)
275
275
  -------------------------------------------------------------------------------------------------------
276
276
 
277
277
 
278
+ ### View RTO/Risk Reasons
279
+
280
+ ```go
281
+ orderId = "order_XXXXXXXXXXXXX1"
282
+
283
+ Razorpay::Order.view_rto(orderId)
284
+ ```
285
+ **Parameters**
286
+
287
+ | Name | Type | Description |
288
+ |----------|--------|------------------------------------- |
289
+ | orderId* | string | The unique identifier of an order to access the fulfillment information. |
290
+
291
+ **Response:**
292
+ ```json
293
+ {
294
+ "risk_tier": "high",
295
+ "rto_reasons": [
296
+ {
297
+ "reason": "short_shipping_address",
298
+ "description": "Short shipping address",
299
+ "bucket": "address"
300
+ },
301
+ {
302
+ "reason": "address_pincode_state_mismatch",
303
+ "description": "Incorrect pincode state entered",
304
+ "bucket": "address"
305
+ }
306
+ ]
307
+ }
308
+ ```
309
+ -------------------------------------------------------------------------------------------------------
310
+
311
+ ### Update the Fulfillment Details
312
+
313
+ ```rb
314
+ order_id = "order_XXXXXXXXXXXXX1"
315
+
316
+ para_attr = {
317
+ "payment_method": "upi",
318
+ "shipping": {
319
+ "waybill": "123456789",
320
+ "status": "rto",
321
+ "provider": "Bluedart"
322
+ }
323
+ }
324
+
325
+ Razorpay::Order.edit_fulfillment(order_id, para_attr)
326
+ ```
327
+ **Parameters**
328
+
329
+ | Name | Type | Description |
330
+ |----------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
331
+ | orderId* | string | The unique identifier of an order to access the fulfillment information. |
332
+ | payment_method | string | Payment Method opted by the customer to complete the payment. Possible values is `upi`, `card`, `wallet`, `netbanking`, `cod`, `emi`, `cardless_emi`, `paylater`, `recurring`, `other`. |
333
+ | shipping | object | Contains the shipping data. [here](https://razorpay.com/docs/payments/magic-checkout/rto-intelligence/#step-3-update-the-fulfillment-details) are supported |
334
+
335
+ **Response:**
336
+ ```json
337
+ {
338
+ "entity": "order.fulfillment",
339
+ "order_id": "EKwxwAgItXXXX",
340
+ "payment_method": "upi",
341
+ "shipping": {
342
+ "waybill": "123456789",
343
+ "status": "rto",
344
+ "provider": "Bluedart"
345
+ }
346
+ }
347
+ ```
348
+ -------------------------------------------------------------------------------------------------------
278
349
  **PN: * indicates mandatory fields**
279
350
  <br>
280
351
  <br>
data/documents/payment.md CHANGED
@@ -863,6 +863,259 @@ Razorpay::Iin.fetch(tokenIin);
863
863
  }
864
864
  ```
865
865
  -------------------------------------------------------------------------------------------------------
866
+ -------------------------------------------------------------------------------------------------------
867
+
868
+ ### Fetch a Payment (With Expanded EMI Details)
869
+
870
+ ```rb
871
+ Razorpay::Payment.expand_details("pay_XXXXXXXXXXXXXX",{"expand[]": "emi"})
872
+ ```
873
+
874
+ **Parameters:**
875
+
876
+ | Name | Type | Description |
877
+ |-------------|---------|------------------------------------------------------------------|
878
+ | paymentId* | integer | Unique identifier of the payment |
879
+ | expand[] | string | Use to expand the `emi` details when the payment method is emi. |
880
+
881
+ **Response:** <br>
882
+
883
+ ```json
884
+ {
885
+ "id": "pay_DG4ZdRK8ZnXC3k",
886
+ "entity": "payment",
887
+ "amount": 200000,
888
+ "currency": "INR",
889
+ "status": "authorized",
890
+ "order_id": null,
891
+ "invoice_id": null,
892
+ "international": false,
893
+ "method": "emi",
894
+ "amount_refunded": 0,
895
+ "refund_status": null,
896
+ "captured": false,
897
+ "description": null,
898
+ "card_id": "card_DG4ZdUO3xABb20",
899
+ "bank": "ICIC",
900
+ "wallet": null,
901
+ "vpa": null,
902
+ "email": "gaurav@example.com",
903
+ "contact": "+919972000005",
904
+ "notes": [],
905
+ "fee": null,
906
+ "tax": null,
907
+ "error_code": null,
908
+ "error_description": null,
909
+ "error_source": null,
910
+ "error_step": null,
911
+ "error_reason": null,
912
+ "emi": {
913
+ "issuer": "ICIC",
914
+ "rate": 1300,
915
+ "duration": 6
916
+ },
917
+ "acquirer_data": {
918
+ "auth_code": "828553"
919
+ },
920
+ "created_at": 1568026077
921
+ }
922
+ ```
923
+ -------------------------------------------------------------------------------------------------------
924
+
925
+ ### Fetch a Payment (With Expanded Card Details)
926
+
927
+ ```rb
928
+ Razorpay::Payment.expand_details("pay_XXXXXXXXXXXXXX", {"expand[]": "card"})
929
+ ```
930
+
931
+ **Parameters:**
932
+
933
+ | Name | Type | Description |
934
+ |-------------|---------|---------------------------------------------------------------------|
935
+ | paymentId* | integer | Unique identifier of the payment |
936
+ | expand[] | string | Use to expand the card details when the payment method is `card`. |
937
+
938
+ **Response:** <br>
939
+
940
+ ```json
941
+ {
942
+ "id": "pay_H9oR0gLCaVlV6m",
943
+ "entity": "payment",
944
+ "amount": 100,
945
+ "currency": "INR",
946
+ "status": "failed",
947
+ "order_id": "order_H9o58N6qmLYQKC",
948
+ "invoice_id": null,
949
+ "terminal_id": "term_G5kJnYM9GhhLYT",
950
+ "international": false,
951
+ "method": "card",
952
+ "amount_refunded": 0,
953
+ "refund_status": null,
954
+ "captured": false,
955
+ "description": null,
956
+ "card_id": "card_H9oR0ocen1cmZq",
957
+ "card": {
958
+ "id": "card_H9oR0ocen1cmZq",
959
+ "entity": "card",
960
+ "name": "Gaurav",
961
+ "last4": "1213",
962
+ "network": "RuPay",
963
+ "type": "credit",
964
+ "issuer": "UTIB",
965
+ "international": false,
966
+ "emi": false,
967
+ "sub_type": "business"
968
+ },
969
+ "bank": null,
970
+ "wallet": null,
971
+ "vpa": null,
972
+ "email": "gaurav.kumar@example.com",
973
+ "contact": "+919000090000",
974
+ "notes": {
975
+ "email": "gaurav.kumar@example.com",
976
+ "phone": "09000090000"
977
+ },
978
+ "fee": null,
979
+ "tax": null,
980
+ "error_code": "BAD_REQUEST_ERROR",
981
+ "error_description": "Card issuer is invalid",
982
+ "error_source": "customer",
983
+ "error_step": "payment_authentication",
984
+ "error_reason": "incorrect_card_details",
985
+ "acquirer_data": {
986
+ "auth_code": null,
987
+ "authentication_reference_number": "100222021120200000000742753928"
988
+ },
989
+ "created_at": 1620807547
990
+ }
991
+ ```
992
+
993
+ -------------------------------------------------------------------------------------------------------
994
+
995
+ ### Fetch a Payment (With Expanded Offers Details)
996
+
997
+ ```rb
998
+ Razorpay::Payment.expand_details("pay_XXXXXXXXXXXXXX", {"expand[]": "offers"})
999
+ ```
1000
+
1001
+ **Parameters:**
1002
+
1003
+ | Name | Type | Description |
1004
+ |-------------|---------|----------------------------------------------------------------|
1005
+ | paymentId* | integer | Unique identifier of the payment |
1006
+ | expand[] | string | Use to expand the offers applied to a payment. |
1007
+
1008
+ **Response:** <br>
1009
+
1010
+ ```json
1011
+ {
1012
+ "id": "pay_G8VaL2Z68LRtDs",
1013
+ "entity": "payment",
1014
+ "amount": 900,
1015
+ "currency": "INR",
1016
+ "status": "captured",
1017
+ "order_id": "order_G8VXfKDWDEOHHd",
1018
+ "invoice_id": null,
1019
+ "international": false,
1020
+ "method": "netbanking",
1021
+ "amount_refunded": 0,
1022
+ "refund_status": null,
1023
+ "captured": true,
1024
+ "offers": {
1025
+ "entity": "collection",
1026
+ "count": 1,
1027
+ "items": [
1028
+ {
1029
+ "id": "offer_G8VXOp0qNuEXzh"
1030
+ }
1031
+ ]
1032
+ },
1033
+ "description": "Purchase Shoes",
1034
+ "card_id": null,
1035
+ "bank": "KKBK",
1036
+ "wallet": null,
1037
+ "vpa": null,
1038
+ "email": "gaurav.kumar@example.com",
1039
+ "contact": "+919000090000",
1040
+ "customer_id": "cust_DitrYCFtCIokBO",
1041
+ "notes": [],
1042
+ "fee": 22,
1043
+ "tax": 4,
1044
+ "error_code": null,
1045
+ "error_description": null,
1046
+ "error_source": null,
1047
+ "error_step": null,
1048
+ "error_reason": null,
1049
+ "acquirer_data": {
1050
+ "bank_transaction_id": "0125836177",
1051
+ "authentication_reference_number": "100222021120200000000742753928"
1052
+ },
1053
+ "created_at": 1606985740
1054
+ }
1055
+ ```
1056
+
1057
+ -------------------------------------------------------------------------------------------------------
1058
+
1059
+ ### Fetch a Payment (With Expanded UPI Details)
1060
+
1061
+ ```rb
1062
+ Razorpay::Payment.expand_details("pay_XXXXXXXXXXXXXX", {"expand[]": "upi"})
1063
+ ```
1064
+
1065
+ **Parameters:**
1066
+
1067
+ | Name | Type | Description |
1068
+ |-------------|---------|---------------------------------------------------------------|
1069
+ | paymentId* | integer | Unique identifier of the payment |
1070
+ | expand[] | string | Use to expand the UPI details when the payment method is upi. |
1071
+
1072
+ **Response:** <br>
1073
+
1074
+ ```json
1075
+ {
1076
+ "id": "pay_DG4ZdRK8ZnXC3k",
1077
+ "entity": "payment",
1078
+ "amount": 100,
1079
+ "currency": "INR",
1080
+ "status": "captured",
1081
+ "order_id": "order_GjCr5oKh4AVC51",
1082
+ "invoice_id": null,
1083
+ "international": false,
1084
+ "method": "upi",
1085
+ "amount_refunded": 0,
1086
+ "refund_status": null,
1087
+ "captured": true,
1088
+ "description": "Payment for Adidas shoes",
1089
+ "card_id": null,
1090
+ "bank": null,
1091
+ "wallet": null,
1092
+ "vpa": "gaurav.kumar@upi",
1093
+ "email": "gaurav.kumar@example.com",
1094
+ "contact": "9000090000",
1095
+ "customer_id": "cust_K6fNE0WJZWGqtN",
1096
+ "token_id": "token_KOdY$DBYQOv08n",
1097
+ "notes": [],
1098
+ "fee": 1,
1099
+ "tax": 0,
1100
+ "error_code": null,
1101
+ "error_description": null,
1102
+ "error_source": null,
1103
+ "error_step": null,
1104
+ "error_reason": null,
1105
+ "acquirer_data": {
1106
+ "rrn": "303107535132"
1107
+ },
1108
+ "created_at": 1605871409,
1109
+ "upi": {
1110
+ "payer_account_type": "credit_card",
1111
+ "vpa": "gaurav.kumar@upi",
1112
+ "flow": "in_app" // appears only for Turbo UPI Payments.
1113
+ }
1114
+ }
1115
+ ```
1116
+
1117
+ -------------------------------------------------------------------------------------------------------
1118
+
866
1119
  **PN: * indicates mandatory fields**
867
1120
  <br>
868
1121
  <br>
@@ -775,6 +775,46 @@ Razorpay::Transfer.fetch(transferId).edit(para_attr)
775
775
 
776
776
  -------------------------------------------------------------------------------------------------------
777
777
 
778
+ ### Fetch Reversals for a Transfer
779
+ ```rb
780
+ transferId = "trf_JhemwjNekar9Za"
781
+ Razorpay::Transfer.reversals(transferId)
782
+ ```
783
+
784
+ **Parameters:**
785
+
786
+ | Name | Type | Description |
787
+ |---------------|-------------|---------------------------------------------|
788
+ | transferId* | string | The id of the transfer to be fetched |
789
+
790
+ **Response:**
791
+ ```json
792
+ {
793
+ "entity":"collection",
794
+ "count":1,
795
+ "items":[
796
+ {
797
+ "id":"rvrsl_Lt09xvyzskI7KZ",
798
+ "entity":"reversal",
799
+ "transfer_id":"trf_Lt048W7cgLdo1u",
800
+ "amount":50000,
801
+ "fee":0,
802
+ "tax":0,
803
+ "currency":"INR",
804
+ "notes":[
805
+
806
+ ],
807
+ "initiator_id":"Ghri4beeOuMTAb",
808
+ "customer_refund_id":null,
809
+ "utr":null,
810
+ "created_at":1684822489
811
+ }
812
+ ]
813
+ }
814
+ ```
815
+
816
+ -------------------------------------------------------------------------------------------------------
817
+
778
818
  **PN: * indicates mandatory fields**
779
819
  <br>
780
820
  <br>
@@ -2,7 +2,7 @@
2
2
  module Razorpay
3
3
  BASE_URI = 'https://api.razorpay.com'.freeze
4
4
  TEST_URL = 'https://api.razorpay.com/'.freeze
5
- VERSION = '3.2.2'.freeze
5
+ VERSION = '3.2.3'.freeze
6
6
  AUTH_URL = 'https://auth.razorpay.com'.freeze
7
7
  API_HOST = 'API'.freeze
8
8
  AUTH_HOST = 'AUTH'.freeze
@@ -38,5 +38,21 @@ module Razorpay
38
38
  def deleteToken(tokenId)
39
39
  self.class.request.delete "#{id}/tokens/#{tokenId}"
40
40
  end
41
+
42
+ def self.add_bank_account(id, options = {})
43
+ request.post "#{id}/bank_account", options
44
+ end
45
+
46
+ def self.delete_bank_account(id, bankAccountId)
47
+ request.delete "#{id}/bank_account/#{bankAccountId}"
48
+ end
49
+
50
+ def self.request_eligibility_check(options = {})
51
+ request.post "eligibility", options
52
+ end
53
+
54
+ def self.fetch_eligibility(eligibilityId)
55
+ request.get "eligibility/#{eligibilityId}"
56
+ end
41
57
  end
42
58
  end
@@ -0,0 +1,26 @@
1
+ require 'razorpay/request'
2
+ require 'razorpay/entity'
3
+
4
+ module Razorpay
5
+ class Dispute < Entity
6
+ def self.request
7
+ Razorpay::Request.new('disputes')
8
+ end
9
+
10
+ def self.fetch(id)
11
+ request.fetch id
12
+ end
13
+
14
+ def self.all(options = {})
15
+ request.all options
16
+ end
17
+
18
+ def self.accept(id, options={})
19
+ request.post "#{id}/accept", options
20
+ end
21
+
22
+ def self.contest(id, options)
23
+ request.patch "#{id}/contest", options
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,19 @@
1
+ require 'razorpay/request'
2
+ require 'razorpay/entity'
3
+
4
+ module Razorpay
5
+ # Document API allows you to create and fetch document on Razorpay
6
+ class Document < Entity
7
+ def self.request
8
+ Razorpay::Request.new('documents')
9
+ end
10
+
11
+ def self.create(options)
12
+ request.create options
13
+ end
14
+
15
+ def self.fetch(id)
16
+ request.fetch id
17
+ end
18
+ end
19
+ end
@@ -35,5 +35,13 @@ module Razorpay
35
35
  # Docs: https://razorpay.com/docs/api/payments/route/#fetch-transfer-for-an-order
36
36
  request.get "#{id}/?expand[]=transfers&status"
37
37
  end
38
+
39
+ def self.view_rto(id)
40
+ request.post "#{id}/rto_review"
41
+ end
42
+
43
+ def self.edit_fulfillment(id, options = {})
44
+ request.post "#{id}/fulfillment", options
45
+ end
38
46
  end
39
47
  end
@@ -112,5 +112,9 @@ module Razorpay
112
112
  def self.validate_vpa(data={})
113
113
  request.post "validate/vpa" , data
114
114
  end
115
+
116
+ def self.expand_details(id, options={})
117
+ request.get "#{id}", options
118
+ end
115
119
  end
116
120
  end
@@ -31,5 +31,9 @@ module Razorpay
31
31
  def self.fetch_settlements
32
32
  request.get "?expand[]=recipient_settlement"
33
33
  end
34
+
35
+ def self.reversals(id)
36
+ request.get "#{id}/reversals"
37
+ end
34
38
  end
35
39
  end
data/lib/razorpay.rb CHANGED
@@ -26,6 +26,8 @@ require 'razorpay/token'
26
26
  require 'razorpay/product'
27
27
  require 'razorpay/stakeholder'
28
28
  require 'razorpay/account'
29
+ require 'razorpay/document'
30
+ require 'razorpay/dispute'
29
31
  require 'razorpay/oauth_token'
30
32
 
31
33
  # Base Razorpay module
@@ -0,0 +1,67 @@
1
+ {
2
+ "entity": "collection",
3
+ "count": 2,
4
+ "items": [
5
+ {
6
+ "id": "disp_Esz7KAitoYM7PJ",
7
+ "entity": "dispute",
8
+ "payment_id": "pay_EsyWjHrfzb59eR",
9
+ "amount": 10000,
10
+ "currency": "INR",
11
+ "amount_deducted": 0,
12
+ "reason_code": "pre_arbitration",
13
+ "respond_by": 1590604200,
14
+ "status": "open",
15
+ "phase": "pre_arbitration",
16
+ "created_at": 1590059211,
17
+ "evidence": {
18
+ "amount": 10000,
19
+ "summary": null,
20
+ "shipping_proof": null,
21
+ "billing_proof": null,
22
+ "cancellation_proof": null,
23
+ "customer_communication": null,
24
+ "proof_of_service": null,
25
+ "explanation_letter": null,
26
+ "refund_confirmation": null,
27
+ "access_activity_log": null,
28
+ "refund_cancellation_policy": null,
29
+ "term_and_conditions": null,
30
+ "others": null,
31
+ "submitted_at": null
32
+ }
33
+ },
34
+ {
35
+ "id": "disp_Esyvk3kZj0isXk",
36
+ "entity": "dispute",
37
+ "payment_id": "pay_EsyWjHrfzb59eR",
38
+ "amount": 5000,
39
+ "currency": "INR",
40
+ "amount_deducted": 0,
41
+ "reason_code": "warning_bulletin_or_exception_file",
42
+ "respond_by": 1590604200,
43
+ "status": "won",
44
+ "phase": "chargeback",
45
+ "created_at": 1590058554,
46
+ "evidence": {
47
+ "amount": 5000,
48
+ "summary": null,
49
+ "shipping_proof": [
50
+ "doc_EFtmUsbwpXwBH9",
51
+ "doc_EFtmUsbwpXwBH8"
52
+ ],
53
+ "billing_proof": null,
54
+ "cancellation_proof": null,
55
+ "customer_communication": null,
56
+ "proof_of_service": null,
57
+ "explanation_letter": null,
58
+ "refund_confirmation": null,
59
+ "access_activity_log": null,
60
+ "refund_cancellation_policy": null,
61
+ "term_and_conditions": null,
62
+ "others": null,
63
+ "submitted_at": 1590604100
64
+ }
65
+ }
66
+ ]
67
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "error": {
3
+ "code": "BAD_REQUEST_ERROR",
4
+ "description": "The id provided does not exist",
5
+ "source": "business",
6
+ "step": "payment_initiation",
7
+ "reason": "input_validation_failed",
8
+ "metadata": {}
9
+ }
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "error": {
3
+ "code": "BAD_REQUEST_ERROR",
4
+ "description": "Invalid file id provided or merchant is unauthorized to access the fileId(s) provided",
5
+ "source": "NA",
6
+ "step": "NA",
7
+ "reason": "NA",
8
+ "metadata": {}
9
+ }
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "error": {
3
+ "code": "BAD_REQUEST_ERROR",
4
+ "description": "The id provided does not exist",
5
+ "source": "business",
6
+ "step": "payment_initiation",
7
+ "reason": "input_validation_failed",
8
+ "metadata": {}
9
+ }
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "error": {
3
+ "code": "BAD_REQUEST_ERROR",
4
+ "description": "The eligibility id does not exist.",
5
+ "source": "NA",
6
+ "step": "NA",
7
+ "reason": "NA",
8
+ "metadata": {}
9
+ }
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "error": {
3
+ "code": "BAD_REQUEST_ERROR",
4
+ "description": "Amount is required.",
5
+ "source": "NA",
6
+ "step": "NA",
7
+ "reason": "NA",
8
+ "metadata": {}
9
+ }
10
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": "ba_LSZht1Cm7xFTwF",
3
+ "entity": "bank_account",
4
+ "ifsc": "ICIC0001207",
5
+ "bank_name": "ICICI Bank",
6
+ "name": "Gaurav Kumar",
7
+ "notes": [],
8
+ "account_number": "XXXXXXXXXXXXXXX0434"
9
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "id": "disp_XXXXXXXXXXXXX",
3
+ "entity": "dispute",
4
+ "payment_id": "pay_EsyWjHrfzb59eR",
5
+ "amount": 10000,
6
+ "currency": "INR",
7
+ "amount_deducted": 0,
8
+ "reason_code": "pre_arbitration",
9
+ "respond_by": 1590604200,
10
+ "status": "open",
11
+ "phase": "pre_arbitration",
12
+ "created_at": 1590059211,
13
+ "evidence": {
14
+ "amount": 10000,
15
+ "summary": "goods delivered",
16
+ "shipping_proof": null,
17
+ "billing_proof": null,
18
+ "cancellation_proof": null,
19
+ "customer_communication": null,
20
+ "proof_of_service": null,
21
+ "explanation_letter": null,
22
+ "refund_confirmation": null,
23
+ "access_activity_log": null,
24
+ "refund_cancellation_policy": null,
25
+ "term_and_conditions": null,
26
+ "others": null,
27
+ "submitted_at": null
28
+ }
29
+ }