返金を行う

Smartpay は、加盟店様からの返金リクエストに対してのみ返金を行います。返金リクエストは Smartpay のダッシュボードで、または返金 API 呼び出しにより行えます。

Smartpay のダッシュボードで

1. 返金する注文を検索する

Smartpay のダッシュボードにログインすると、注文の一覧が表示されます。注文 IDreference で指定した値お客様名、またはお客様のメールアドレスで特定の注文を検索できます。

該当する注文が見つかったら、それをクリックすると注文の詳細ページが表示されます。

2. 返金する

注文の詳細ページで返金するをクリックします。
返金する金額と説明(任意)を入力し、返金するをクリックします。


Smartpay API を使用する

1. 返金する注文を取得する

返金する注文の orderId を使って、Smartpay API を使って注文オブジェクトを取得します

curl --request GET \
     --url 'https://api.smartpay.co/v1/orders/order_test_bA1znhGULw5lROfDTpHChv?expand=no' \
     --header 'Accept: application/json' \
     --header 'Authorization: Basic {secretKey}'

返されるオブジェクトには、payment フィールドがあり、注文に対して作成された paymentId が付与されています。返金するには、この paymentId を取得する必要があります。

{
  "id": "order_test_bA1znhGULw5lROfDTpHChv",
  "object": "order",
  "amount": 2100,
  "createdAt": 1644978270631,
  "currency": "JPY",
  "discounts": [],
  "expiresAt": 1645583167495,
  "lineItems": [
    "li_test_Lj1ofPS7HabmT3i0XsyB4V"
  ],
  "metadata": {},
  "payments": [
    "payment_test_GDEATBKK8XAp9XGf6J4U4"
  ],
  "shippingInfo": {
    ...
  },
  "status": "succeeded",
  "test": true,
  "updatedAt": 1644978437889
}

2. 返金する

注文の paymentId を使って、Smartpay API で返金を作成します

引数の全リストは、返金用 API エンドポイントの作成 を参照してください。以下の項目は入力が必須です。

  • amount: 当該の支払い金額のうち返金する金額を示す正数です。返金できるのは、最大で支払い金額の未返金の金額までです。
  • currency: 大文字3文字の ISO 通貨コードです。サポートされている通貨である必要があります。
  • payment: 支払いオブジェクトの一意の識別子です。
  • reason: 返金の理由です(requested_by_customer または fraudulent)。
curl --request POST \
     --url https://api.smartpay.co/v1/refunds \
     --header 'Accept: application/json' \
     --header 'Authorization: Basic {secretKey}' \
     --header 'Content-Type: application/json' \
     --data '
{
     "amount": 1000,
     "currency": "JPY",
     "description": "Customer return",
     "lineItems": [],
     "payment": "payment_test_GDEATBKK8XAp9XGf6J4U4",
     "reason": "requested_by_customer",
     "reference": "my_merchant_refund_reference"
}
'
$api = new \Smartpay\Api(getenv('SECRET_KEY'), getenv('PUBLIC_KEY'));

$payment = $api->createRefund([
   'amount' => 1500,
   'currency' => 'JPY',
   'description' => 'Description for my Smartpay refund',
   'lineItems' => [],
   'payment' => 'payment_test_GDEATBKK8XAp9XGf6J4U4',
   'reason' => 'requested_by_customer',
   'reference' => 'my_merchant_refund_reference'
]);
Smartpay.configure do |config|
  config.public_key = ENV['PUBLIC_KEY']
  config.secret_key = ENV['SECRET_KEY']
end

payment = Smartpay::Api.create_refund({
  amount: 1500,
  currency: 'JPY',
  description: 'Description for my Smartpay refund',
  lineItems: [],
  payment: 'payment_test_GDEATBKK8XAp9XGf6J4U4',
  reason: 'requested_by_customer',
  reference: 'my_merchant_refund_reference',
})
SECRET_KEY = os.environ.get('SECRET_KEY', '<YOUR_SECRET_KEY>')
PUBLIC_KEY = os.environ.get('PUBLIC_KEY', '<YOUR_PUBLIC_KEY>')

smartpay = Smartpay(SECRET_KEY, public_key=PUBLIC_KEY)

payment = smartpay.create_refund(
    payment="payment_test_GDEATBKK8XAp9XGf6J4U4",
    amount=1500,
    currency="JPY",
    reference="my_merchant_refund_reference",
    reason="requested_by_customer",
    description="Description for my Smartpay refund"
):