コンビニ決済、Pay-easy決済、ネットバンク決済[Beta]

コンビニ決済、Pay-easy決済、ネットバンク決済は、ユーザーがバーコードをコンビニエンスストアの店頭、郵便局、ATMなどで表示するだけで、現金決済を簡単に行うことができるサービスです。 現在対応しているコンビニエンスストアは、ファミリーマートローソンミニストップセイコーマートです。上記のコンビニエンスストアであれば日本全国の店舗でご利用可能です。

注意

- コンビニ決済、Pay-easy決済、ネットバンク決済はAPIバージョン2017-11-02においてのみサポート対象となっております。

- コンビニ決済、Pay-easy決済、ネットバンク決済は、現在Omise Japanご契約加盟店様のみご利用いただけます。その他の国でOmiseをご利用中の加盟店様には誠に恐縮ですが、ご提供開始まで今しばらくお待ちください。

- 大変恐縮ですが、個人事業主の加盟店様はご利用いただくことができません。

決済の流れ

お客様は配送先を入力し注文内容をご確認いただいた後に、希望する決済方法を選択することが可能になります。

お客様がメールアドレスと電話番号を入力すると、コンビニエンスストア、郵便局、ATMなどで支払いをするためのリンクが表示されます。

決済方法はコンビニエンスストア、金融機関ごとに手続きが異なります。 お客様が正しくお手続きを行うことができるように、加盟店様はOmiseが提供するリンクをご利用ください。

Convenience Store payment flow

オンラインでの手続きが完了しますと、お客様はご利用可能なコンビニエンスストア、金融機関などで決済を完了します。

Convenience Store payment flow

お客様がコンビニエンスストア、金融機関などでの決済を完了すると、Omiseが確認メッセージを受領し、加盟店様にお取引が完了したことをお知らせします。

課金の作成手順

課金を作成する際には2つのステップを経る必要があります。1つ目は、ソースAPIを使用しソースオブジェクトを作成すること、2つ目は、charge API のソースパラメータにidの値を渡して作成することです。

1. ソースAPIを使用し、ソースオブジェクトを作成

コンビニ決済、Pay-easy決済、ネットバンク決済の課金を作成するには、ソースAPIを使用してソースオブジェクトを登録する必要があります。 ソースの作成コードは以下の通りです。 

curl https://api.omise.co/sources \
  -X POST \
  -u skey_test_59rnqoboimgxvjk894d: \
  -d "amount=150" \
  -d "currency=jpy" \
  -d "type=econtext" \
  -d "name=Customer" \
  -d "email=customer@email.co" \
  -d "phone_number=01234567891" 

コンビニ決済、Pay-easy決済、ネットバンク決済でのお支払金額は150(円)以上49,999(円)の範囲内にてご利用ください。

JSON Response

{
  "object": "source",
  "id": "src_5babhlfyw8g7smtk44u",
  "livemode": true,
  "location": "/sources/src_5babhlfyw8g7smtk44u",
  "type": "econtext",
  "flow": "offline",
  "amount": 150,
  "currency": "jpy",
  "name": "Customer",
  "email": "customer@email.co",
  "phone_number": "01234567891"
}

ソースオブジェクトを作成するときは、シークレットキーをご利用ください。

2. chargeAPIのソースパラメータにidの値を渡して作成

作成されたソースを取得します。最も重要な属性は、次に使用されるidです。 課金を作成するには、idを課金APIでsource(ソース)パラメータとして利用します。この例では、idとしてsrc_5babhlfyw8g7smtk44uを利用します。

curl https://api.omise.co/charges \
  -X POST \
  -u skey_test_59rnqoboimgxvjk894d: \
  -d "description=Charge for order 3947" \
  -d "amount=150" \
  -d "currency=jpy" \
  -d "source=src_5babhlfyw8g7smtk44u" \

JSONレスポンスの例を以下に示します。   

 {
  "object": "charge",
  "id": "chrg_5babhz7ufmaxu5wi03y",
  "livemode": true,
  "location": "/charges/chrg_5babhz7ufmaxu5wi03y",
  "amount": 150,
  "currency": "jpy",
  "description": "test multipay charge",
  "metadata": {
  },
  "status": "pending",
  "capture": true,
  "authorized": false,
  "reversed": false,
  "voided": false,
  "paid": false,
  "transaction": null,
  "refunded": 0,
  "refunds": {
    "object": "list",
    "from": "1970-01-01T00:00:00Z",
    "to": "2018-03-16T02:53:39Z",
    "offset": 0,
    "limit": 20,
    "total": 0,
    "order": null,
    "location": "/charges/chrg_5babhz7ufmaxu5wi03y/refunds",
    "data": [

    ]
  },
  "return_uri": null,
  "reference": null,
  "authorize_uri": "https://pay.omise.co/offlines/econtext/instructions/oflp_om1s3yqgwaldlnhy6y3",
  "failure_code": null,
  "failure_message": null,
  "card": null,
  "customer": null,
  "ip": null,
  "dispute": null,
  "created": "2018-03-16T02:53:39Z",
  "source": {
    "object": "source",
    "id": "src_5babhlfyw8g7smtk44u",
    "references": {
      "payment_code": "553384",
      "expires_at": "2018-04-06T14:59:00Z"
    },
    "type": "econtext",
    "flow": "offline",
    "amount": 150,
    "currency": "jpy",
    "name": "Customer",
    "email": "customer@email.co",
    "phone_number": "01234567891"
  },
  "disputable": false,
  "capturable": false,
  "reversible": false,
  "refundable": false
}

JSONレスポンスについて

返されたJSONレスポンスは課金オブジェクトであるため、コンビニ決済、ペイジー決済、ネットバンク決済とは関係のないフィールドも含んでいます。例えば、これらの決済手段はvoided, refunded, disputed, or reversedとすることはできません。

Authorize Uriについて

加盟店様がお客様に提供するURLは、authorize_uri欄にあります。このURLにはお客様が正しく決済を行うための必要な決済方法、また手順に関する情報が含まれています。テストモードでは、サンプルのURLが提供されます。 

加盟店様はCharges APIで課金データを再取得し、いつでも課金ステータスを確認することが可能です。

  • authorizedpaidいずれもtrueの場合:決済は正常に完了しています。
  • authorizedpaidいずれもfalseの場合:決済が正常に完了していません。エラー発生要因の詳細は、Chargeオブジェクトのfailure_codeならびにfailure_messageに記載されます。以下の「エラーコード」セクションには、コンビニエンスストア決済が出来なかった理由が記載されています。
  • authorizedpaidの値は常に一致します。

失効日の設定について

コンビニ決済、ペイジー決済、ネットバンク決済の場合、課金の失効日がデフォルトで設定されています。課金の失効日を変更したい場合、ISO 8601形式の日付をUTC時間で課金の作成のステップで設定してください。日本時間はUTCより9時間早いため、ご注意ください。例えば、失効日を日本時間2018年7月1日0時とする場合には、 "expires_at=2018-07-01T15:00:00Z" と設定してください。

curl https://api.omise.co/charges \
  -X POST \
  -u skey_test_59rnqoboimgxvjk894d: \
  -d "description=Charge for order 3947" \
  -d "amount=150" \
  -d "currency=jpy" \
  -d "source=src_5babhlfyw8g7smtk44u" \
  -d "expires_at=2018-07-01T15:00:00Z"

課金のステータス

課金のステータスはいつでも確認することが可能です。詳細はCharges APIのドキュメントをご覧ください。

  • authorizedpaid の両方が true である場合、課金のステータスは succeeded と表示されます。
  • authorizedpaid の両方が false である場合、課金のステータスは failed と表示されます。
    (課金失敗の理由の詳細な説明は、failure_codefailure_messageのChargeオブジェクトから確認することができます。)
  • authorizedpaid の表示が異なることはありません。

エラーコード  

Code 説明
payment_cancelled 決済がキャンセルされました。
timeout 決済の有効期限前にユーザーからの応答がありませんでした。
failed_processing 他の理由により決済が行われませんでした。

Webhooks

return_uri を利用する方法よりも、私たちの提供するWebhook APIをご利用いただくことをおすすめいたします。 トランザクションが完了すると、Webhookから charge.complete というイベント名ででダッシュボードで指定されたURLに通知が送信されます。