分割払い

こちらのページにてご案内のサービスは、現在Omise Thailandご契約加盟店様のみご利用いただけます。その他の国でOmiseをご利用中の加盟店様には誠に恐縮ですが、ご提供開始まで今しばらくお待ちください。

分割払いをご利用いただくと、一定期間に少額ずつお支払いただくことが可能になります。Omiseでは、この利便性の高い決済方法をご利用いただけるようAPIを提供しています。現時点では、合計支払金額が3,000THB以上となった場合に、最大36回の分割払いプランをご利用いただけます(利用可能な期間の長さおよび月々の最低支払額は、ご利用のカード毎に異なります)。

利用可能なカード一覧

クレジットカード ソース type installment_term お支払いの期間 (月) 月ごとの最低支払い額(THB)
アユタヤ銀行 installment_bay 3, 4, 6, 9, 10 500
バンコク銀行 installment_bbl 4, 6, 8, 9, 10 500
アユタヤ・ファーストチョイス installment_first_choice 3, 4, 6, 9, 10, 12, 18, 24, 36 300
カシコーン銀行  installment_kbank 3, 4, 6, 10 300
クルンタイ銀行 installment_ktc 3, 4, 5, 6, 7, 8, 9, 10 300

決済フロー

顧客が分割支払いを選択すると、支払いページがリダイレクトされます。加盟店のウェブサイトから、銀行が運営するページにリダイレクトされた上で、決済金額の確認が行なわれます。完了すると、顧客は加盟店のWebサイトに再度リダイレクトされます。

次のスクリーンショットは、この決済フローを説明しています。支払い時に、顧客は分割支払いを選択します。

installment 1

支払い先の銀行を選択した後、銀行が運営するWebページにリダイレクトされます。決済金額ならびに照合番号は、承認ページに既に入力された状態になります。

installment 2

顧客は、決済情報と支払い金額を確認するだけの状態になります。確認後、顧客は指定されたreturn_uriを介して、加盟店のウェブサイトに再度リダイレクトされます。

実装

通常、分割払い料金の作成には以下の手順が含まれます。 1. ソースAPIを利用して、新しい決済ソースを作成する。  2. 課金APIを利用して、新しい課金を作成し、最初のステップで作成したソースIDを渡す。

これは、新しい決済ソースの登録(ステップ1)がパブリックキー(公開鍵)を利用してクライアント側(例:ユーザのブラウザまたは携帯電話上)で行われ、課金の作成(ステップ2)がプライベートキー(秘密鍵)を使用してサーバ側で行われると仮定します。

このフローをクライアント側で実装する際は、Omise.jsまたはOmiseのモバイルSDKいずれかを使用することをお勧めします。

また、非推奨ですが、サーバー側でソースの作成と課金の両方が行われる必要がある場合、課金APIを利用してソースの作成と課金を行うことができます。

どちらが分割払いの利息を負担するかを設定する

ソースを作成する前に、どちらが分割払いの利子を負担するかを設定します。これは加盟店 (Merchant) でも顧客(Customer)でもかまいません。この設定は管理画面で設定できます。

Setting Zero Interest Installments

クライアント側のソースを作成する 

分割支払の方法は、ソース種類として実装されています。上記リストにtypeおよびinstallment_termパラメーターの有効値が記されています。installment_term有効な値は、総額と月々の最低支払い額(amount)によって異なることにご留意ください。新しいソースの作成コードは以下の通りです。 

注:以下の例では$ OMISE_PUBLIC_KEY環境変数をご自身のパブリックキー(公開鍵)が含まれるように設定しておく必要があります。

curl https://api.omise.co/sources \
  -X POST \
  -u $OMISE_PUBLIC_KEY: \
  -d "description=Installment Payment Source" \
  -d "amount=500000" \
  -d "currency=THB" \
  -d "type=installment_kbank" \
  -d "installment_term=4" \
  -H "Omise-Version: 2019-05-29"
{
  "object": "source",
  "id": "src_test_5g2hvadpm5ucvap2a6n",
  "livemode": false,
  "location": "/sources/src_test_5g2hvadpm5ucvap2a6n",
  "type": "installment_kbank",
  "flow": "redirect",
  "amount": 500000,
  "currency": "THB",
  "installment_term": 4,
  "zero_interest_installments": true
}

返されたソースオブジェクトは、zero_interest_installments属性に加えて、ソース作成時に渡されたパラメータを反映しています。管理画面にて分割払いの利子を負担するようにMerchant (加盟店)を設定した場合、trueに設定されます。

分割払い手数料の作成

上記の返されたオブジェクトのid属性の値を使用して、新しい請求用のソースパラメータの値として渡します。この課金には、課金承認のためにサイトを離れる顧客が含まれるため、パラメータreturn_uriも渡す必要があります。課金完了時に顧客がリダイレクトされるサイトのURLはこちらです。 

注:この例では、ご自身ののシークレットキー(秘密鍵)が含まれるよう、$ OMISE_SECRET_KEY環境変数を設定しておく必要があります。また、$ SOURCE_IDには上記のid属性の値を含める必要があります。

curl https://api.omise.co/charges \
-X POST \
-u $OMISE_SECRET_KEY: \
-d "source=$SOURCE_ID" \
-d "description=Installment Payment Charge" \
-d "amount=500000" \
-d "currency=THB" \
-d "return_uri=https://example.com/orders/345678/complete" \
-H "Omise-Version: 2019-05-29"
{
  "object": "charge",
  "id": "chrg_test_5g2hvak2zoseiam51ps",
  "livemode": false,
  "location": "/charges/chrg_test_5g2hvak2zoseiam51ps",
  "created_at": "2019-05-30T07:43:46Z",
  "amount": 500000,
  "currency": "THB",
  "funding_amount": 500000,
  "funding_currency": "THB",
  "fee": 18250,
  "fee_vat": 1278,
  "interest": 13000,
  "interest_vat": 910,
  "net": 466562,
  "description": "Installment Payment Charge",
  "metadata": {
  },
  "status": "pending",
  "capture": true,
  "authorized": false,
  "schedule": null,
  "reversed": false,
  "reversed_at": null,
  "expires_at": "2019-06-06T07:43:46Z",
  "expired": false,
  "expired_at": null,
  "voided": false,
  "paid": false,
  "paid_at": null,
  "transaction": null,
  "refunded_amount": 0,
  "refunds": {
    "object": "list",
    "from": "1970-01-01T00:00:00Z",
    "to": "2019-05-30T07:43:47Z",
    "offset": 0,
    "limit": 20,
    "total": 0,
    "order": "chronological",
    "location": "/charges/chrg_test_5g2hvak2zoseiam51ps/refunds",
    "data": [

    ]
  },
  "link": null,
  "return_uri": "https://example.com/orders/345678/complete",
  "failure_code": null,
  "failure_message": null,
  "card": null,
  "customer": null,
  "ip": null,
  "dispute": null,
  "source": {
    "object": "source",
    "id": "src_test_5g2hv9yy2k9n0640fox",
    "livemode": false,
    "location": "/sources/src_test_5g2hv9yy2k9n0640fox",
    "type": "installment_kbank",
    "flow": "redirect",
    "amount": 500000,
    "currency": "THB"
  },
  "disputable": false,
  "capturable": false,
  "reversible": false,
  "refundable": false,
  "authorize_uri": "https://pay.omise.co/offsites/ofsp_test_5g2hvak9ayf70bg0gm6/pay"
}

サーバー側のソースと課金を作成する

あるいは、課金作成時にソースを指定する必要がある場合(すなわちサーバ側)、課金API を利用してソースの作成と課金を行うことができます。  

curl https://api.omise.co/charges \
  -X POST \
  -u $OMISE_SECRET_KEY: \
  -d "amount=500000" \
  -d "currency=THB" \
  -d "return_uri=http://example.com/orders/345678/complete" \
  -d "source[type]=installment_kbank" \
  -d "source[installment_term]=4" \
  -H "Omise-Version: 2019-05-29"

承認 

上記のAPIコールから作成された課金オブジェクトには、属性 authorize_uri が含まれています 。こちらが、銀行が運営するWebページのURIで、顧客に課金の確認、および承認を依頼します。

テストモードではURIにアクセスし、手動で課金を成功または失敗としてマークすることで、この一連の動作をシミュレートできます。

Installment Payments Authorize URI Test

ステータスを確認する  

Webhookを介した自動支払い

課金が完了したときに通知を受け取るには、イベントAPIを使用します。設定が完了すると、分割払いの支払いが完了するたびに、イベントキーcharge.completeを含むリクエストが、設定済みのWebhookエンドポイントに送信されます。 詳細はWebhooksをご覧ください。 

課金オブジェクトのステータスには、課金の失敗期限切れ保留、または成功という値を設定できます。 課金が成功した場合、承認済みおよび支払済みの値はtrueとなります。

課金状況が失敗または期限切れとなった場合は、状況の理由を、課金オブジェクトのfailure_codeおよびfailure_message属性からご確認ください。以下はfailure_codeの可能な値と詳細な説明です。

failure_code Description
insufficient_balance アカウントの資金不足、もしくはクレジットカードの限度額が上限に達しています。
payment_cancelled 支払いがキャンセルされました。
timeout 決済の有効期限前にユーザーからの応答がありませんでした。
failed_processing 支払い処理に失敗しました。

マニュアル 

課金APIで説明されているように、idを使用して取得することで、課金の任意の属性を確認できます。こちらはJSONフィルタツール、jqを使った例です。

curl -s https://api.omise.co/charges/$CHARGE_ID \
  -u $OMISE_SECRET_KEY: | jq -M .status
"pending"

返金 

分割払い手数料の返金方法については、返金APIドキュメントをご参照ください。

注:分割払いの手数料は全額払い戻しのみで、部分払い戻しには対応していません。

分割払いを有効にする 

本番モードでの取引でAPIを使用する前に、利用規約をご確認ください。 

利用を開始するにあたって必要なAPIのバージョンは2017-11-02以降です。APIバージョン の更新に関するガイダンスについては、APIバージョンを参照してください。