Skip to content

Latest commit

 

History

History
325 lines (280 loc) · 8.34 KB

refund.md

File metadata and controls

325 lines (280 loc) · 8.34 KB

Refunds

require "razorpay"

Razorpay.setup('key_id', 'key_secret')

Create a normal refund

paymentId = "pay_Ir1SV9FgF8pxxG"

para_attr = {
  "amount": "100",
  "speed": "normal",
  "notes": {
    "notes_key_1": "Beam me up Scotty.",
    "notes_key_2": "Engage"
  },
  "receipt": "Receipt No. 31"
}

Razorpay::Payment.fetch(paymentId).refund(para_attr)

Parameters:

Name Type Description
paymentId* string The id of the payment
amount integer The amount to be captured (should be equal to the authorized amount, in paise)
speed string Here, it must be normal
notes object A key-value pair
receipt string A unique identifier provided by you for your internal reference.

Response:

{
  "id": "rfnd_FP8QHiV938haTz",
  "entity": "refund",
  "amount": 500100,
  "receipt": "Receipt No. 31",
  "currency": "INR",
  "payment_id": "pay_FCXKPFtYfPXJPy",
  "notes": [],
  "acquirer_data": {
    "arn": null
  },
  "created_at": 1597078866,
  "batch_id": null,
  "status": "processed",
  "speed_processed": "normal",
  "speed_requested": "normal"
}

Create an instant refund

paymentId = "pay_Ir1SV9FgF8pxxG"

para_attr = {
  "amount": "100",
  "speed": "optimum",
  "receipt": "Receipt No. 31"
}
Razorpay::Payment.fetch(paymentId).refund(para_attr)

Parameters:

Name Type Description
paymentId* string The id of the payment
amount integer The amount to be captured (should be equal to the authorized amount, in paise)
speed* string Here, it must be optimum
receipt string A unique identifier provided by you for your internal reference.

Response:

{
  "id": "rfnd_FP8R8EGjGbPkVb",
  "entity": "refund",
  "amount": 500100,
  "currency": "INR",
  "payment_id": "pay_FC8MmhMBZPKDHF",
  "notes": {
    "notes_key_1": "Tea, Earl Grey, Hot",
    "notes_key_2": "Tea, Earl Grey… decaf."
  },
  "receipt": "Receipt No. 31",
  "acquirer_data": {
    "arn": null
  },
  "created_at": 1597078914,
  "batch_id": null,
  "status": "processed",
  "speed_requested": "optimum"
}

Fetch multiple refunds for a payment

paymentId = "pay_FIKOnlyii5QGNx"

option = {"count":1}

Razorpay::Payment.fetch_multiple_refund(paymentId,option)

Parameters:

Name Type Description
paymentId* string The id of the payment for which refund has been requested.
from timestamp UNIX timestamp at which the refunds were created.
to timestamp UNIX timestamp till which the refunds were created.
count integer The number of refunds to fetch for the payment.
skip integer The number of refunds to be skipped for the payment.

Refund:

{
  "entity": "collection",
  "count": 1,
  "items": [
    {
      "id": "rfnd_FP8DDKxqJif6ca",
      "entity": "refund",
      "amount": 300100,
      "currency": "INR",
      "payment_id": "pay_FIKOnlyii5QGNx",
      "notes": {
        "comment": "Comment for refund"
      },
      "receipt": null,
      "acquirer_data": {
        "arn": "10000000000000"
      },
      "created_at": 1597078124,
      "batch_id": null,
      "status": "processed",
      "speed_processed": "normal",
      "speed_requested": "optimum"
    }
  ]
}

Fetch a specific refund for a payment

paymentId = "pay_FIKOnlyii5QGNx"

refundId = "rfnd_FP8DDKxqJif6ca"

Razorpay::Payment.fetch(paymentId).fetch_refund(refundId)

Parameters:

Name Type Description
paymentId* string Unique identifier of the payment for which the refund has been made.
refundId* string Unique identifier of the refund to be retrieved.

Response:

{
  "id": "rfnd_FP8DDKxqJif6ca",
  "entity": "refund",
  "amount": 300100,
  "currency": "INR",
  "payment_id": "pay_FIKOnlyii5QGNx",
  "notes": {
    "comment": "Comment for refund"
  },
  "receipt": null,
  "acquirer_data": {
    "arn": "10000000000000"
  },
  "created_at": 1597078124,
  "batch_id": null,
  "status": "processed",
  "speed_processed": "normal",
  "speed_requested": "optimum"
}

Fetch all refunds

options = {"count":1}

Razorpay::Refund.all(options)

Parameters:

Name Type Description
from timestamp timestamp after which the payments were created
to timestamp timestamp before which the payments were created
count integer number of payments to fetch (default: 10)
skip integer number of payments to be skipped (default: 0)

Response:

{
  "entity": "collection",
  "count": 2,
  "items": [
    {
      "id": "rfnd_FFX6AnnIN3puqW",
      "entity": "refund",
      "amount": 88800,
      "currency": "INR",
      "payment_id": "pay_FFX5FdEYx8jPwA",
      "notes": {
        "comment": "Issuing an instant refund"
      },
      "receipt": null,
      "acquirer_data": {},
      "created_at": 1594982363,
      "batch_id": null,
      "status": "processed",
      "speed_processed": "optimum",
      "speed_requested": "optimum"
    }
  ]
}

Fetch particular refund

refundId = "rfnd_FFX6AnnIN3puqW"

Razorpay::Refund.fetch(refundId)

Parameters:

Name Type Description
refundId* string The id of the refund to be fetched

Response:

{
  "id": "rfnd_EqWThTE7dd7utf",
  "entity": "refund",
  "amount": 6000,
  "currency": "INR",
  "payment_id": "pay_EpkFDYRirena0f",
  "notes": {
    "comment": "Issuing an instant refund"
  },
  "receipt": null,
  "acquirer_data": {
    "arn": "10000000000000"
  },
  "created_at": 1589521675,
  "batch_id": null,
  "status": "processed",
  "speed_processed": "optimum",
  "speed_requested": "optimum"
}

Update the refund

refundId = "rfnd_FP8DDKxqJif6ca"

para_attr = {
  "notes": {
    "notes_key_1": "Beam me up Scotty.",
    "notes_key_2": "Engage"
  }
}

Razorpay::Refund.fetch(refundId).edit(para_attr)

Parameters:

Name Type Description
refundId* string The id of the refund to be fetched
notes* object A key-value pair

Response:

{
  "id": "rfnd_FP8DDKxqJif6ca",
  "entity": "refund",
  "amount": 300100,
  "currency": "INR",
  "payment_id": "pay_FIKOnlyii5QGNx",
  "notes": {
    "notes_key_1": "Beam me up Scotty.",
    "notes_key_2": "Engage"
  },
  "receipt": null,
  "acquirer_data": {
    "arn": "10000000000000"
  },
  "created_at": 1597078124,
  "batch_id": null,
  "status": "processed",
  "speed_processed": "normal",
  "speed_requested": "optimum"
}

PN: * indicates mandatory fields

For reference click here