# استرداد وجه

متد استرداد وجه به شما این امکان را می‌دهد که در صورت تغییر یا لغو سفارش مشتریان، واریزی‌های اشتباه یا هرگونه الزامی جهت بازگرداندن وجه به خریدار، تمام مبلغ واریز شده یا حتی بخشی از آن را به صورت آنی یا در سیکل‌های پایا، به حساب آن‌ها واریز نمایید.

# پارامترهای ورودی

در این متد، پارامترهای زیر به API ارسال می‌شود:

نام نوع اجباری شرح
session_id String بله شماره تراکنش
amount Integer بله مبلغ ریال (حداقل مبلغ قابل استرداد ۲۰۰۰۰ ریال)
description String بله توضیح علت استرداد وجه
method String بله متد استرداد وجه (CARD یا PAYA)
reason String بله دلیل استرداد (CUSTOMER_REQUEST و غیره)

# اطلاعات خروجی

در صورت موفقیت، اطلاعات زیر از API دریافت می‌شود:

نام نوع شرح
id String شماره تراکنش
terminal_id String شماره ترمینال درگاه
amount Integer مبلغ پرداخت شده به ریال
timeline Object تاریخچه تراکنش
refund_amount Integer مبلغ استرداد
refund_time String تاریخ ثبت استرداد
refund_status String وضعیت استرداد

# نمونه کد

در ادامه نمونه‌ای از پیاده‌سازی متد استرداد وجه در android آمده است:

import com.example.zarinpal.ZarinPal
import com.example.zarinpal.data.remote.dto.Config
import com.example.zarinpal.data.remote.dto.refund.PaymentRefundRequest
import com.example.zarinpal.data.remote.dto.refund.PaymentRefundResponse
import com.example.zarinpal.data.remote.dto.verification.PaymentVerificationDataResponse
import com.example.zarinpal.data.remote.enum.MethodEnum
import com.example.zarinpal.data.remote.enum.ReasonEnum
val zarinPal = ZarinPal(
        Config(
            merchantId = "your-merchant-id",
        )
    )
CoroutineScope(Dispatchers.IO).launch {
  try{
    val request = PaymentRefundRequest(
          amount = 20000,
          description = "des",
          sessionId = "id",
          method = MethodEnum.PAYA,
          reason = ReasonEnum.OTHER,
      )
    val response = zarinPal.paymentRefund(request)
     Log.v("ZP_Log","$response")
  } catch (ex: Exception) {
    ex.printStackTrace()
  }
}