Skip to content

Commit 1003883

Browse files
authored
added reversals (#250)
1 parent 277f49b commit 1003883

File tree

5 files changed

+93
-0
lines changed

5 files changed

+93
-0
lines changed

documents/transfers.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -775,6 +775,46 @@ Razorpay::Transfer.fetch(transferId).edit(para_attr)
775775

776776
-------------------------------------------------------------------------------------------------------
777777

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+
778818
**PN: * indicates mandatory fields**
779819
<br>
780820
<br>

lib/razorpay/transfer.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,9 @@ def reverse(options = {})
3131
def self.fetch_settlements
3232
request.get "?expand[]=recipient_settlement"
3333
end
34+
35+
def self.reversals(id)
36+
request.get "#{id}/reversals"
37+
end
3438
end
3539
end
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"entity":"collection",
3+
"count":1,
4+
"items":[
5+
{
6+
"id":"rvrsl_Lt09xvyzskI7KZ",
7+
"entity":"reversal",
8+
"transfer_id":"trf_Lt048W7cgLdo1u",
9+
"amount":50000,
10+
"fee":0,
11+
"tax":0,
12+
"currency":"INR",
13+
"notes":[
14+
15+
],
16+
"initiator_id":"Ghri4beeOuMTAb",
17+
"customer_refund_id":null,
18+
"utr":null,
19+
"created_at":1684822489
20+
}
21+
]
22+
}

test/fixtures/transfer_error.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
}

test/razorpay/test_transfer.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,5 +73,22 @@ def test_transfer_direct_transfer
7373
assert_equal transfer.id, @transfer_id , 'Transfer transfer_id is accessible'
7474
refute transfer.on_hold
7575
end
76+
77+
def test_fetch_reversals
78+
stub_get(%r{/transfers/#{@transfer_id}/reversals$}, 'reversals_collection')
79+
transfer = Razorpay::Transfer.reversals(@transfer_id)
80+
assert_instance_of Razorpay::Collection, transfer , 'Transfer should be an array'
81+
refute_empty transfer.items , 'Transfer should be more than one'
82+
end
83+
84+
def test_fetch_reversals_exception
85+
stub_get(%r{/transfers/#{@transfer_id}/reversals$}, 'transfer_error')
86+
assert_raises(Razorpay::Error) do
87+
transfer = Razorpay::Transfer.reversals(@transfer_id)
88+
if transfer.error
89+
raise Razorpay::Error.new, transfer.error['code']
90+
end
91+
end
92+
end
7693
end
7794
end

0 commit comments

Comments
 (0)