1. 機能別 よくある質問一覧

よくある質問とその回答をカテゴリ別にまとめました。
左メニューまたは下部リストより、カテゴリを指定してご覧ください。

1.1 決済・課金について

管理画面>決済から確認できます。

詳細は『管理画面ガイド』をご覧ください。

課金のステータスの種類と、それぞれの状態を説明します。

ステータス 状態
成功 正常に決済が完了した
処理待ち
  • クレジットカード決済の場合:決済の結果待ち
  • オンライン決済の場合:消費者がアプリ側での決済処理完了を待っている
  • コンビニ決済・銀行振込の場合:入金・振込待ち
オーソライズ済 仮売上(決済金額の与信枠をおさえている)
セキュリティコード認証(CVV認証)に成功した
失敗

決済が失敗している
※失敗理由はAPIリファレンス『エラーコード』から確認可能です

エラー

決済サーバーやデータベースエラーなどの例外的なエラーや、カードの有効期限切れなどが発生した
※エラーのメッセージを確認の上、不明点があればサポートデスク(ips-support@univapay.com)までお問い合わせください

キャンセル済
  • クレジットカード決済の場合:仮売上がキャンセルされた
  • オンライン決済・コンビニ決済・銀行振込の場合:加盟店によって課金申込がキャンセルされた

決済結果の取得方法は下記4通りです。
加盟店さまの目的に沿った方法をご利用ください。

管理画面

決済タブのダウンロードボタンより、CSVレポートで決済結果のダウンロードができます。
各検索欄で検索することで条件ごとに決済を絞り込んでダウンロードできます。

CSVファイルの各項目については、ご利用ガイド『CSVデータのダウンロード』をご覧ください。

コールバック

ウィジェットのパラメータを追加することで、リダイレクト先のURLに追加される形式で、各処理結果を即時に受信できます。

コールバックの詳細は、利用ガイド『処理結果の通知と取得』をご覧ください。

ウェブフック

各種処理結果について、本サービスから加盟店さまがシステム通知を受信できます。

ウェブフックの詳細は、利用ガイド『ウェブフック』をご覧ください。

通知メール

各処理結果について、加盟店さま/消費者のメールアドレス宛に通知を送信できます。

通知の詳細は、利用ガイド『処理結果のメール通知』をご覧ください。

API

以下2通りのリクエスト方法によって、決済結果を取得できます。

詳細は、それぞれAPIリファレンスをご覧ください。

CSVレポートのダウンロード手順と見方について説明します。

①管理画面>決済 から、日時など任意の条件に絞ってください。

②課金と返金それぞれのCSVレポートをダウンロードしてください。

③イベント(Q列)に対応する金額を、イベント金額(F列)から確認できます。
課金と返金のファイルを照合して、加盟店さまの目的に合わせてデータを活用してください。

例1)「イベント」:売上、「イベント金額」:100
→100円の売上

例2)「イベント」:返金、「イベント金額」:100
→100円の返金

イベントの種類とその内容は、ご利用ガイド『CSVデータのダウンロード』をご覧ください。

トークンメタデータ(L列)または課金メタデータ(M列)から確認できます。
商品名のメタデータのキーは univapay-product-names です。

以下2通りの方法で、管理画面から課金を行えます。
管理画面の操作方法は、『管理画面ガイド』をご覧ください。

リカーリング課金

管理画面>リカーリングトークンから、課金させたいリカーリングトークンを選択し、下部の課金ボタンから課金ができます。

CSV課金(オプション)

管理画面>CSV課金からCSVファイルをアップロードすることで、複数のリカーリングトークンに対して一括で課金ができます。
ご利用をご希望の場合はサポートデスク(ips-support@univapay.com)までお問い合わせください。

1.2 返金について

Alipay・WeChat・PayPayonline・Paidy・d払いOnlineは一部返金に対応しています。
その他の決済手段は対応していません。

決済手段によって異なります。
以下を参照してください。

決済手段
返金の可否
クレジットカード決済
約半年(約180日)
Alipay
1年
Wechat
半年(180日)
PayPayonline
1年
Paidy
1年
d払いOnline
半年(180日)

以下のような原因が考えられます。

失敗

  • カード会社側で調査中
  • チャージバックが確定している

エラー

  • リクエストした返金金額が課金金額を上回っている
  • タイムアウト(通信エラー)
  • 一部返金に対応していない決済サービスで一部返金をした
  • 返金期限を過ぎている

保留

クレジットカード決済で、接続先が海外の場合、返金に1~2週間ほどかかる場合があります。
処理が完了したら「成功」「失敗」に変わりますので、しばらくお待ちください。

返金の受付は完了しましたが、処理は完了していない状態です。

返金処理には1~2週間ほどかかる場合がありますので、しばらくお待ちください。

課金時と返金時の通知メールは、同じメールテンプレート種別「決済完了通知」が送信されます。

メールテンプレートを作成する場合、パラメータ${transaction_type}を使用することで、処理によって自動で「課金」もしくは「返金」とメール表記を切り替えることが可能です。

例)件名が「${transaction_type}のお知らせ」の場合
課金時:「課金のお知らせ」
返金時:「返金のお知らせ」

メールテンプレートを作成せずデフォルトのメールテンプレートを使用する場合は、処理によって「課金」または「返金」にメール表記が切り替わります。

メールテンプレートのデフォルト内容は、利用ガイド『テンプレートの種類』を参照してください。

1.3 定期課金について

作成方法は以下3通りあります。
加盟店さまの運用に合った方法で作成してください。

1.管理画面から設定

管理画面>リンクフォーム から、リンクフォームを作成する際に「定期課金」をONにしてください。

2.パラメータを指定

決済フォーム設置時 または APIでの連携時、パラメータで課金方式を定期課金に指定することで作成できます。
使用するパラメータ情報は以下ページでご確認ください。

管理画面>店舗>対象の店舗>決済フォーム のジェネレータを活用すると、簡単に作成できます。

指定できる定期課金の間隔は以下の通りです。

  • 毎日
  • 毎週
  • 隔週
  • 毎月
  • 2カ月毎
  • 3か月毎
  • 6か月毎
  • 毎年
  • カスタム…間隔を自由に指定可能(例:10日毎等)

定期課金のステータスの種類と、それぞれの状態を説明します。

ステータス 状態
待機中 定期課金を作成し、初回課金の待機中
継続中 現在稼働中の定期課金
一時停止 一時停止され再開可能な状態
または 定期課金失敗回数を超えた状態
リトライ待ち

継続中の定期課金で課金を失敗し、再課金を待っている状態
または 一時停止後に再開し、再課金を待っている状態

永久停止 定期課金が完全に停止され再開不可な状態
作成失敗 定期課金作成のため初回課金を行うも決済失敗した状態
(定期課金として稼働していない状態)
完了 指定した課金回数分の決済が終わった状態
または 分割払いが成功した状態

自動でリトライ(再度課金)を行います。
設定された回数のリトライに失敗すると、自動で即時停止します。

デフォルトは、定期課金の周期÷設定されたリトライ回数=リトライ間隔として計算されます。
※毎月(monthly)は課金月に関係なく30日として計算します。
※割り切れない場合は切り捨ての日数になります。
例)30日÷4=7.5日→7日

リトライ間隔は、前回失敗した日から計算されます。
例)リトライ間隔7日の定期課金
2024/1/23に失敗→2024/1/30にリトライ

任意のリトライ間隔に設定したい場合は、以下を参照してください。

リトライ間隔の設定方法

1.リトライ回数

全体の定期課金に対して、リトライを実行する回数を設定できます。
管理画面>一般設定 から設定できます。

設定時の注意点:
リトライ回数は初回の課金も回数に含みます。
リトライに成功すると、リトライ回数がリセットされ、次回の支払いからは設定した回数リトライされるようになります。

2.リトライ間隔

定期課金ごとに、リトライを実行する間隔を個別で設定できます。
リトライ間隔の設定は、リトライ回数の設定より優先されます。

設定方法は以下の通りです。

①定期課金作成時

(ⅰ)管理画面の定期課金作成画面で指定

  • 管理画面>リンクフォーム>新規作成
  • 管理画面>店舗>決済フォーム の各ジェネレータ

(ⅱ)決済フォームでパラメータを指定

(ⅲ)APIでの連携(定期課金 – CREATE

 ②定期課金情報の更新:APIでの連携(定期課金 – UPDATE

停止

管理画面>定期課金 より、停止させたい定期課金を選択して詳細画面を開き、左下部の停止ボタンを押すことで停止できます。

停止ボタンは、停止後再開できる「一時停止」と、再開できない「永久停止」の2種類あります。
用途に合わせて選択してください。

再開

管理画面>定期課金 から、再開させたい定期課金を選択して詳細画面を開き、左下部の再開ボタンを押すことで再開できます。

再開時の注意点

  • 次回課金予定日が過ぎている状態で一時停止の定期課金を再開した場合、
    再開直後には課金されず、再開時から最も近い将来のサイクル日に次回課金日を設定します。

例)
①毎月1日に課金される定期課金を2024/1/23に停止(次回課金日:2024/2/1の状態で停止する)
②2024/2/2に再開(次回課金日:2024/3/1に設定される)
③2024/3/1に課金される

  • 再開日がサイクル日と同日だった場合は、再開時に課金されます。

例)
①毎月1日に課金される定期課金を2024/1/23に停止(次回課金日:2024/2/1の状態で停止する)
②2024/2/1に再開
→再開日がサイクル日(次回課金日)と同日のため、即時課金される

  • 回数指定の定期課金では再開時に過去の未払いの決済がある場合、元の課金スケジュールを後ろ倒しで支払い予定を追加します。

当社の決済フォームを使用するか、APIで連携することで作成できます。
初回に課金せず、カード登録のみを行う場合は、基本CVV認証が必須なことに注意してください
※設定によって不要な場合もあります。

作成方法は、以下を参照してください。

作成方法

1.管理画面から設定

リンクフォームタブと、店舗タブの各ジェネレーターから作成できます。
下記の通り設定してください。

  • 「カード登録(リカーリングトークン作成)」「CVV認証」「定期課金」をON
  • 「初回(フォーム送信時)」でカード登録(¥0)を選択

2.パラメーターで指定

決済フォーム設置時 または APIでの連携時、パラメータを指定することで作成できます。
使用するパラメータ情報は以下ページでご確認ください。

管理画面から変更できます。
管理画面>定期課金>対象の定期課金を選択し、次回課金日および次回課金金額を変更してください。

※設定変更後、ページ下部の「保存」ボタンを押してください

回数制限付き定期課金の場合は、次回課金金額の変更はできません。

契約時に設定された課金最大額が、都度の課金額の上限です。

一般設定>決済サービス>全体設定>課金 の「課金額の上限」から確認できます。

次の課金日は、管理画面>定期課金 から対象の定期課金を選択し、詳細画面から確認できます。
課金日の午前7時※より、順次課金されます。
※毎日の定期課金 および 定期課金開始日が定期課金作成日の1日後な場合に限り午前9時

  • 前回の課金が成功している場合:「次回課金日」に課金されます。
  • 前回の課金が失敗している場合:「リトライ日」に課金されます。

定期課金が停止している場合は、以下の点に注意してください。

  • 停止中ではなく、再開後の「次回課金日」「リトライ日」の表示を参照してください。
    (再開すると、次回課金日が自動で最も近い将来のサイクル日に設定されるため
  • 再開日がサイクル日と同日な場合、再開時に課金されます。

次の課金を待っている状態です。
次の課金日の確認方法は、一つ上の質問項目「この定期課金が次に課金されるタイミングはいつですか?」の回答を参照してください。

定期課金

加盟店が指定したサイクル(間隔)ごとに自動で課金を行う方法です。

加盟店さまへは、都度の課金が精算・入金されます

分割払い

都度課金を、消費者が任意の回数に分けて支払う方法です。
消費者とイシュア(カード発行会社)との契約によって、選択できる回数が異なります。

加盟店さまへは、一括で精算・入金されます。

1.4 リカーリングトークンについて

カード情報(カード番号と有効期限)を復号できない別の文字列に置き換えたものです。

当社決済フォームに入力されたカード情報は、自動的に文字列に置き換える処理(トークン化)が行われます。
トークン化によって、PCI DSSに準拠していない加盟店でもクレジットカード決済を利用できます。

クレジットカード情報を加盟店サイト内に入力させ、本サービスの APIに送信する場合は、カード情報の「通過」にあたるため、加盟店サイトがPCI DSSへの準拠が必要になります。

繰り返し課金に利用するために、消費者のクレジットカード情報をトークン化したものです。
リカーリングトークンを登録することによって、消費者が2回目以降の決済時にカード情報を入力する手間を省けます。

管理画面>リカーリングトークンから、登録済のリカーリングトークンに対して、以下の対応が可能です。

  • 詳細情報の確認
  • 情報の更新(名義、有効期限、メタデータ、有効/無効 等)
  • 課金

セキュリティコード認証されていない可能性があります。
初回処理時に課金しなかったリカーリングトークンに対して後から課金をするには、リカーリングトークン作成時にセキュリティコード認証をする必要があります。

※加盟店設定によります

1.5 CSV課金について

当社指定のフォーマットに沿ったCSVファイルをアップロードすることで、加盟店さまの判断で、既存の消費者に対して再び課金できる機能です。
CSV課金では、複数の既存の消費者に対して一括での課金が可能です。

オプション機能のため、ご利用をご希望の場合はサポートデスク(ips-support@univapay.com)までお問い合わせください。

仕組み

リカーリングトークンに保存されたクレジットカード情報を再利用して、新たな課金を行います。

CSVファイルで提供された情報をもとにリカーリングトークンを識別するため、予めリカーリングトークンに消費者の情報(クレジットカード情報,メールアドレス,メタデータ等)が結びついている必要があります。

一番新しいリカーリングトークンを識別する仕組みによって、消費者1人に対して複数のリカーリングトークンが存在している場合でも、重複して課金することを防げます。
例)メールアドレスで識別する場合
同じメールアドレスのリカーリングトークンが複数存在している場合、一番新しいリカーリングトークンに対してのみ課金する

詳細は、利用ガイド『CSV課金』をご覧ください。

CSV課金を実行してから、結果を確認するまでの流れを説明します。

1.CSVファイルを作成

当社指定のフォーマットに沿って、課金に必要な情報が記載されたCSVファイルを作成してください。

  • フォーマットは利用ガイド『CSV課金を参照してください。
  • CSVファイルのサンプルは、こちらをクリックするとダウンロードできます。

2.CSVファイルをアップロード

管理画面>CSV課金 から、「CSVファイルをアップロードする」のボタンを押してください。
その後、画面に沿って各設定を行い、「金額データCSV」の項目へ作成したCSVファイルをアップロードしてください。

3.結果および詳細を確認

CSV課金の結果は管理画面>CSV課金 から、対象のCSV課金を選択することで処理結果や詳細を確認できます。
対象のCSV課金を選択した画面から、決済結果を確認する方法は、以下の2通りあります。

  • 「決済を確認」ボタンから、管理画面上で確認
  • 「決済結果のダウンロード」ボタンを押して、決済結果が記載されたCSVファイルをダウンロードして確認

以下要因の可能性があります。

  • CSVファイルのフォーマットが正しくない
  • CSVファイル内の情報が正しくない
    例)メールアドレスが間違っている
  • 指定したリカーリングトークンIDが無効になっている
    例1)リカーリングトークンの名義/有効期限を変更した
    ………名義/有効期限を変更すると、情報が更新された状態でリカーリングトークンIDが新しく作成されます
    例2)APIでの連携(トランザクショントークン – DELETE)によって削除した
    例3)テストモードで作成し、1か月以上経過したため自動で削除された

すべての条件に当てはまらない または 修正しても改善しなかった場合は、サポートデスク(ips-support@univapay.com)までお問い合わせください。

1.6 APIについて

オンライン決済時の、APIへのリクエストの手順を説明します。

  1. トークン作成
  2. 課金作成
  3. 課金情報取得
  4. イシュアトークン取得
    …③で取得した課金IDを基に各QR事業者の支払い画面を呼び出します。
     レスポンスで発行された各QR事業者の支払いURLを消費者側に表示すると、支払いに進めます。

詳細は、利用ガイド『オンライン決済 - APIへのリクエスト』を参照してください。

トランザクショントークン – CREATEが利用できません。

加盟店さまのサイト内に消費者のクレジットカード情報を入力させてUnivaPay APIに送信する行為は、クレジットカード情報の「通過」にあたるため、加盟店サイトのPCI DSSへの準拠が必要です。

代わりに当社決済フォーム(リンクフォーム、ウィジェット、インラインフォーム)や 決済端末など、当社の提供するソリューションを使用することで、PCI DSSに準拠していない場合でもクレジットカード情報を送信できます。

PCI DSSに準拠している場合は、トークン化から課金、返金まで全てのリクエストを本サービスのAPIに送信できます。

対応しているSDKの言語は以下3つです。

  • Javascript Typescript NodeJS
  • JAVA
  • PHP

本サービスのAPIには、レート制限と、リソース制限の2種類の制限があります。
詳細は、APIの制限のページを参照してください。

ここでは「リクエスト数」の制限に関して、抜粋して紹介します。

レート制限

レート制限には、課金レート制限と標準レート制限の2つに分類されます。

課金レート制限

課金の作成に関するリクエストを行う際にカウントされます。

対象API X-Remaining-Requests
(バーストレート)
X-Requests-Per-Minute
(1分あたりのリクエスト上限)
POST /tokens
POST /charges
POST /subscriptions

上限:100
3,000/分

標準レート制限

標準レート制限は、ルートバーストレートとイグザクトバーストレートの2つに分類されます。

ルートバーストレート

アクセスするリソースの「パス」に対しての制限です。

対象 X-Remaining-Requests-Route
(ルートバーストレート)
X-Requests-Per-Minute-Route
(1分あたりのリクエスト上限:ルート)
全てのパス 上限:30 1,200

イグザクトバーストレート

Exact(完全一致)の名の通り、リソースIDやクエリ文字列も含めて完全に一致するパスに対して適用されます。

対象 X-Remaining-Requests-Exact
(イグザクトバーストレート)
X-Requests-Per-Minute-Exact
(1分あたりのリクエスト上限:イグザクト)
全てのクエリ 上限:10 120

リソースの制限

1つの加盟店または店舗で、有効にできるリソース数には上限があります。
この上限を超えるリソースの作成リクエストには、ResourceLimitReachedエラーが出力されます。

リソース 上限
webhook(ウェブフック) 20
jwt(アプリトークン) 20
パスワードリセットトークン 5回/日
テスト課金 1440件/日

1.7 エラーについて

発生したエラーのコードおよびメッセージを確認できる場所は、下記の通りです。

確認者
場所
消費者

・決済完了画面

・通知メール「決済完了通知」
(通知設定「処理失敗時に消費者に通知」が有効 かつ テンプレートにエラーコード または エラーメッセージを含む場合のみ)

加盟店さま

・merchant>決済>決済詳細画面 「ステータス」部分

・通知メール「決済完了通知」
(通知設定「処理失敗時に加盟店に通知」が有効 かつ テンプレートにエラーコード または エラーメッセージを含む場合のみ)

エラーコードやエラーメッセージの内容を確認したい場合は、APIリファレンス『エラーコード – 概要』を参照してください。

認証エラー(ペイメントエラー306)は、クレジットカードが拒否された場合に発生するエラーです。

よくある事例は以下の通りです。

  • 利用したカードは使用不可である
  • 支払永久禁止
  • 事故カードを使用した
  • 無効カードを使用した

実際の拒否理由は、消費者からカード発行会社へお問い合わせください。

1.8 Alipay / WeChatについて

Alipay Online、Alipay Plus OnlineはPCブラウザ、スマートフォンからそれぞれ決済できます。
WeChat Pay Onlineはモバイル端末からのみ決済できます。

決済手段や、消費者の使用するデバイスによって消費者の支払いフローが異なりますのでご注意ください。
詳細は、以下を参照してください。

決済手段 PCブラウザ モバイル端末
Alipay Online 表示されたQRコードをモバイル端末で読み取って決済
または
ブラウザ内でAlipayのアカウント情報を入力し、支払いパスワードを入力して決済

端末内のアプリを開いて決済
または
ブラウザ内でAlipayのアカウント情報を入力し、支払いパスワードを入力して決済

Alipay Plus Online 表示されたQRコードをモバイル端末で読み取って決済 支払うウォレットを選択し、端末内の各アプリを開いて決済

WeChat Pay Online

非対応

リンクフォームを利用する場合:
アプリ内で当社決済フォームを開き、そのままアプリ内で決済
※決済手段でAlipay,Alipay Plusを選択すると支払い処理に失敗します。
※アプリ外のブラウザからフォームを開いた場合は、決済手段として表示されず利用できません。

ウィジェットを利用する場合:
アプリ外のブラウザから当社決済フォームを開き、情報入力後WeChatアプリへ移動して決済
※利用開始前に、ウィジェット設置予定のウェブサイトのドメインをサポートデスクへ連絡する必要があります。
※アプリ内のブラウザからフォームを開いて決済する方法は現在対応していません。

その他のオンライン決済については、利用ガイド『オンライン決済 - 特徴』を参照してください。

通貨を変更する必要はありません。
日本円を指定すると、AlipayおよびWechatアプリ側で自動で「元」に変換されます。

Alipay(Alipay Online / Alipay Plus Online)

APIでの実装で対応しています。
実装方法は、APIリファレンス『課金 – CREATE』からご確認ください。

Wechat

現在対応しておりません。

課金のステータスが awaiting 以外(pendingfailederror など)の状態でイシュアトークンを取得すると、本エラーが発生します。

イシュアトークンを取得する前に、課金のステータスが awaiting になっているかGET処理によって確認することを推奨します。

1.9 銀行振込について

口座種別はすべて「普通」です。

当システム上で返金機能はありません。

加盟店さまから直接消費者の口座へ返金をお願いいたします。

振込前であれば振込を出来なくすることが可能です。

管理画面>決済 より該当の課金を検索し、詳細画面の左下にある「請求停止」ボタンをクリックしてください。

振込手数料は消費者の負担です。

金額詳細は振込元の金融機関にお問い合わせください。

振込前であれば管理画面>決済>詳細画面より「請求停止」を行い、変更後の金額で再度申込を行ってください。

管理画面>決済 より該当の課金を検索し、詳細画面から口座情報を確認できます。

確認した口座情報を、加盟店さまより消費者へ案内してください。

日本の金融機関からのみ振込可能です。

海外金融機関からの振込は対応していません。

1.10 テストについて

テスト決済方法および結果の確認方法を説明します。

テスト決済方法

管理画面

管理画面>テスト課金 から、クレジットカード決済のみ簡易的なテスト決済が可能です。

実際に当社決済フォームを使用したテスト決済を行いたい場合は、以下の手順で行ってください。

①テストモードのアプリトークン作成
②アプリトークンをテストモードにの切り替え
……決済フォームごとの決済モードの切り替え方法は、以下を参照してください。

決済フォーム 決済モードの切り替え方法
リンクフォーム

管理画面>店舗>対象の店舗を選択後、
決済フォーム>リンクフォーム設定>アプリトークンIDから切り替え
※切り替え後、ページ下部の「保存」ボタンを押してください

    ウィジェット
    • 管理画面のジェネレータ活用時:
      管理画面>店舗>対象の店舗を選択後、
      決済フォーム>ウィジェット>ジェネレータ>アプリID から切り替え
    • 決済フォーム実装時:
      テストモードのアプリトークンを指定
    インラインフォーム
    • 管理画面のジェネレータ活用時:
      管理画面>店舗>対象の店舗を選択後、
      決済フォーム>インラインフォーム>ジェネレータ>アプリID から切り替え
    • 決済フォーム実装時:
      テストモードのアプリトークンを指定

    リンクフォームは、対象店舗で作成したリンクフォームすべてに対して、モードの切り替えが適応されます。
    ウィジェット および インラインフォームは、フォーム毎にアプリトークンを指定することで、モードを指定します。

    ③テスト決済実行

    API

    テストモードのアプリトークンを使用し、各処理を行ってください。
    詳細は、APIリファレンス『トランザクショントークン – CREATE』をご覧ください。

    結果の確認方法

    • 管理画面>決済
      ……検索条件で、モードを「テスト」に指定することで、結果を確認できます。
    • 通知メール
    • ウェブフック(システム通知)
    • API
      ……課金: Create,GET,LIST処理のレスポンスで、結果を確認できます。
        テストモードのアプリトークンを使用してください。

    別のアカウントは不要です。
    テスト決済の方法および結果の確認方法は、一つ上の質問項目「テスト決済をするにはどうすれば良いですか?」の回答を参照してください。

    テストモードの決済に使用できるカード番号は下記の通りです。
    カード番号によって確認できる挙動が異なるため、加盟店さまの目的に沿った番号を利用してください。

    カード番号
    確認できる挙動
    4000020000000000
    決済成功 / 返金成功
    4242424242424242
    決済成功 / 返金失敗
    4111111111111111
    決済失敗

    計算ルールに基づいたカード番号であれば、その他のカード番号も利用可能です。
    カード番号を生成できるサイト等を活用すると、簡単に作成できます。
    例:https://www.getcreditcardnumbers.com/

    ※その他のカード番号を利用する場合は、決済成功 / 返金成功の挙動になります。

    本番モードのアプリトークンを作成し、本番モードのアプリトークンに切り替えてください。

    決済フォームごとの決済モードの切り替え方法は、以下を参照してください。

    決済フォーム 決済モードの切り替え方法
    リンクフォーム

    管理画面>店舗>対象の店舗を選択後、
    決済フォーム>リンクフォーム設定>アプリトークンIDから切り替え
    ※切り替え後、ページ下部の「保存」ボタンを押してください

      ウィジェット
      • 管理画面>店舗>対象の店舗を選択後、
        決済フォーム>ウィジェット>アプリIDから切り替え
      • 決済フォーム実装時に、本番モードのアプリトークンを指定
      インラインフォーム
      • 管理画面>店舗>対象の店舗を選択後、
        決済フォーム>インラインフォーム>アプリID から切り替え
      • 決済フォーム実装時に、本番モードのアプリトークンを指定

      テストモードの挙動

      テストモードのリカーリングトークンは、1カ月で消える仕様です。
      消えたリカーリングトークンに対する課金は、返金ができなくなります。

      テスト/本番モード共通の挙動

      • 課金額よりも返金額の方が大きい場合は、返金ができません。
      • 返金時の通貨は、課金時の通貨と同じである必要があります。
      • 返金が許可されていない加盟店,店舗の可能性があります。

      すべての条件に当てはまらない または 修正しても改善しなかった場合は、サポートデスク(ips-support@univapay.com)までお問い合わせください。

      できません。
      サーバ上からテスト決済をお願いします。

      1.11 システム実装について

      実装方法によって、リダイレクト(遷移)先URLの指定方法が異なります。
      以下を参照してください。

      実装方法 リダイレクト先URLの指定方法
      リンクフォームの設置
      • 下記パラメータを指定
        ……フィールド: successRedirectUrlfailureRedirectUrlpendingRedirectUrl の値に、任意のリダイレクト先URLを指定
        ※詳細は、利用ガイド『パラメータ(基本動作)』を参照してください

      または

      • 管理画面>店舗>店舗を選択>決済フォーム>リンクフォーム設定>設定 の「リダイレクトURL」に、任意のリダイレクト先URLを入力
        ※入力後、ページ下部の保存ボタンを押してください
      ウィジェット / インラインフォームの設置
      • <form>タグで、任意のリダイレクト先URLを指定
        例)<form action="<任意のURL>">
        ―――――中略―――――
        </form>

      かつ

      • <span>要素で、下記パラメータを指定
        ……フィールド: data-auto-submit / autoSubmit (HTML / Javascript)に値: true を指定

      ※詳細は、利用ガイド『設置 – (HTML/JavaScript)』を参照してください

      APIでの連携

      パラメータを指定
      (Alipay online, Alipay plus online, PayPay onlineのみ指定可能)

      ※詳細は、APIリファレンス『課金 – CREATEを参照してください

      使用中のアプリトークンに、サイトURLのドメインが指定されていない場合に表示されるエラーです。
      ウィジェットやインラインフォームを利用する場合は、アプリトークンへのサイトURLのドメインの入力が必須です。
      (APIやSDKを利用する場合は不要です。)

      サイトURLのドメインを指定したアプリトークンを使用して、再度お試しください。

      アプリトークンへのサイトURLのドメインの指定手順は、以下の通りです。
      ①管理画面>アプリトークン の「新規作成」ボタンをクリック
      ②利用店舗の指定 および モードの選択を行う
      ③ドメインの「追加」ボタンをクリックし、サイトURLのドメインを入力
       例)サイトURLが「https://www.univapay.com/」の場合、ドメインは「www.univapay.com」
      ④右下「作成」ボタンをクリック

      以下要因の可能性があります。

      • アプリトークンの作成 および 指定をしていない
        ……以下の手順でアプリトークンを作成・指定してください。
        ①管理画面>アプリトークン の「新規作成」ボタンをクリックし、アプリトークンを作成
        ②管理画面>店舗>店舗を選択>決済フォーム>リンクフォーム設定>設定 から、任意のアプリトークンを指定
      • 指定しているパラメータが間違っている
        ……利用ガイド『パラメータ(基本動作)』を参照してください。

      すべての条件に当てはまらない または 修正しても改善しなかった場合は、サポートデスク(ips-support@univapay.com)までお問い合わせください。

      処理結果は、ウィジェットのパラメータを追加することで、リダイレクト先のURLに追加される形式で即時に受け取れます(コールバック)。
      コールバックを活用して、加盟店さま側でエラー内容ごとにウェブサイトの挙動を変える実装を行ってください。

      また、ウェブフック および APIへのリクエスト(課金のGET処理)で処理結果を受け取り、ウェブサイトで次の処理を実行したい場合等に活用できます。

      詳細は、それぞれ以下ページをご確認ください。

      1.12 メールについて

      決済など各処理をテストモードで行うことで、通知メールの文面および挙動を確認できます。
      ※請求名など、本番モードの時にしか反映されないパラメータもあります。

      管理画面>通知メールテンプレート の「新規作成」ボタンからメールテンプレートを作成することで、通知メールの文面を自由に変更できます。

      メールテンプレートを作成していない場合は、デフォルトの文面で通知メールが送信されます。
      デフォルトの文面は、利用ガイド『テンプレートの種類のページを参照してください。

      管理画面>一般設定>一般>通知 の「メールアドレス」に任意のメールアドレスを入力することで、加盟店さまに届く通知メールの宛先を指定できます。

      指定していない場合、管理画面のログイン用メールアドレスへ通知メールが送信されます。
      (その場合は、管理画面右上の加盟店名をクリック>ユーザー設定 の「メールアドレス」からログイン用メールアドレスを変更すると、通知メールの宛先も変更されます。)

      管理画面>一般設定>通知 から、処理ごとに通知メールの挙動を設定できます。
      通知あり / なしは、ボタンの有効 / 無効によって設定してください。
      ※設定を変更後、ページ下部の「保存」ボタンを押してください

      以下手順によって、商品ごとにメールの文面を分けることができます。

      1.商品にメタデータを追加

      管理画面>商品 から商品を選択後、メタデータの「追加」ボタンを押し、「値」にメールで表示させたい文章を追加してください。「キー」は任意の文字列を指定してください。

      例)キー:商品Aの発送日,値:商品Aの発送はお支払の3日後です。

      2.通知メールテンプレートにパラメータを追加

      管理画面>通知メールテンプレート から、文章を追加したいメールテンプレートを選択(作成していない場合は「新規作成」ボタンから作成)し、メタデータの「キー」を指定したパラメータを記載してください。
      (メタデータの「キー」を指定することで、課金メタデータのうち、表示させたい「値」のみを表示できます。)

      また、パラメータの末尾に「:- (コロン,ハイフン,空白)」を入力してください。
      (パラメータの語尾に「:-(コロン,ハイフン)」を入力すると、その後ろに入力した文字列が、該当のメタデータが存在しない場合に表示される「デフォルト値」として設定されます。)
      デフォルト値を空白に指定することで、該当のメタデータが存在しない場合はメールへ反映されません。

      例)${charge_metadata.商品Aの発送日:- }

      3.商品ごとの挙動を確認

      テストモードで各処理を行って、通知メールの文面を確認してください。

      商品を指定した処理時は通知メールの内容が商品ごとに分かれていて、商品を指定していない処理時はメールに何も表示されなければ完了です。

      例)商品Aを指定して課金処理を行った場合、通知メールの文面に「商品Aの発送はお支払の3日後です。」と表示される / 商品を指定せず課金処理を行った場合、通知メールの文面何も表示されない

      以下のどちらかのパラメータを、商品名を表示させたい通知メールテンプレート内に記載してください。

      • ${charge_metadata.univapay-product-names}
      • ${token_metadata.univapay-product-names}

      商品名以外にも、${charge_metadata.(キー)}や${token_metadata.(キー)}のように表示させたいメタデータのキーを指定すると、その値のみを通知メールの文面に表示させることができます。

      ※リカーリング課金時やCSV課金時、リカーリングトークン作成時、カード情報変更時は${charge_metadata.(キー)}を指定してもメタデータが表示されません。${token_metadata.(キー)}をご利用ください。

      商品を指定しない処理時に表示させたくない場合は、下記のように「デフォルト値」を空白に指定してください。

      • ${charge_metadata.univapay-product-names:-(空白)}
      • ${token_metadata.univapay-product-names:-(空白)}

      以下のイベントが発生した場合、各種内容の通知メールが送信されます。

      • 定期課金作成時
      • 定期課金時(成功 / 失敗)
      • カード情報変更時
      • 定期課金停止時(一時停止 / 永久停止)

      ※「モード設定」や「基本設定」が無効な場合は送信されません。

      1.13 ウェブフックについて

      管理画面>ウェブフック から、「新規作成」ボタンを押すと設定できます。
      各項目の設定方法は以下を参照してください。

      • URL:システム通知を受信するURLを入力する
      • 利用店舗を指定する:有効にして店舗を選択する
      • トリガー:システム通知を受信したい処理を選択する

      ※設定後、ページ下部の「作成」ボタンを押してください

      ウェブフック失敗により、自動停止された可能性があります。

      以下の場合、ウェブフックを自動で停止します。

      HTTPレスポンス エラーコード
      処理
      3xx
      リトライせず、失敗後即停止する
      4xx、500、501、502
      初回含む最大10回のリトライを行い、最大回数に達すると停止する

      停止後はリトライされないため、もう一度有効化したい場合は管理画面から以下手順で設定する必要があります。
      ①管理画面>ウェブフック から、「すべて」または「停止」のウェブフック一覧を表示
      ②有効化したいウェブフックを選択
      ③画面左下の「有効化」ボタンを押す

      ウェブフックの失敗時および停止時にメール通知が必要な場合は、管理画面>一般設定>一般>通知 の「ウェブフック失敗時の通知」「ウェブフック利用不可の通知」を有効にしてください。

      失敗した理由は、管理画面>ウェブフック>対象のウェブフックを選択>最近のイベント から対象のトリガーを選択し、「error_message」から確認できます。

      例)error_message:Request timeout to www.triple-farm.com after 3 seconds
      ……指定されたURLに対してウェブフック通知した際に、3秒以内にレスポンスがない場合、当社ではタイムアウトによって「失敗」と判定します。そのため、非同期処理によって3秒以内にレスポンスを返却する実装が必要です。

      ※あくまで当社の判定なため、加盟店さまへは結果通知が届いてる場合があります

      ウェブフック失敗後の挙動は、利用ガイド『ウェブフック』を参照してください。

      1.14 アカウント・契約の変更について

      管理画面右上の加盟店名>ユーザー設定 から、ログイン用のメールアドレスおよびパスワードを変更できます。

      ※一般設定>一般>通知 の「メールアドレス」から、通知メールを受信するメールアドレスを別途設定していない場合は、ログイン用メールアドレスへ通知メールが送信されます。

      ログイン画面から、以下手順でパスワードを再設定できます。

      ①「パスワードを忘れた場合」ボタンを押して、登録されている加盟店さまのメールアドレスを入力する

      入力されたメールアドレスに届いた、件名『UnivaPayパスワードリセット』というメールを開き、記載されているパスワード再設定用のURLをクリックする

      ③遷移先のページで、新しく設定したいパスワードを2度入力し、「送信」ボタンをクリックする

      別サービスで決済システムを利用する場合は、別途審査を行いアカウントを発行する必要があります。

      サポートデスク(ips-support@univapay.com)へお問い合わせください。

      変更依頼・停止・解約申込フォームから申請することで、加盟店情報を変更できます。
      フォームに沿って変更内容を記載後、「送信する」ボタンを押してください。

      以下では、フォームの各項目について、抜粋して説明します。

      項目名 説明
      届出種別 「加盟店情報変更」を選択してください
      明細書の明細No

      下記①②いずれかの方法で確認してください。

      ①管理画面>精算 から確認
      ②加盟店さまが指定したメールアドレスに明細が届いている場合、添付PDFから確認

      ※不明な場合、管理画面>一般設定>一般>全体設定>情報 に記載されているの「ID」を代わりに入力してください

      会社情報 /
      店舗情報・サイト情報 /
      担当者情報 / 
      振込先情報
      「変更する」または「変更しない」を選択してください。
      「変更する」を選択した場合、それぞれ入力欄が表示されるので、変更したい内容を記載してください。

        フォームに変更したい情報の項目が無かった場合(店舗の追加など)は、サポートデスク(ips-support@univapay.com)へお問い合わせください。
        ※メール内に必ず「店舗ID」「店舗名」を記載してください。

        変更依頼・停止・解約申込フォームから申請してください。

        フォームに沿って変更内容を記載後、「送信する」ボタンを押してください。

        1.15 入金・明細書・請求について

        変更依頼・停止・解約申込フォームから申請することで、登録情報を変更できます。
        フォームに沿って変更内容を記載後、「送信する」ボタンを押してください。

        以下では、フォームの各項目について、抜粋して説明します。

        項目名 説明
        届出種別 「加盟店情報変更」を選択してください
        明細書の明細No

        下記①②いずれかの方法で確認してください。

        ①管理画面>精算 から確認
        ②加盟店さまが指定したメールアドレスに明細が届いている場合、添付PDFから確認

        ※不明な場合、管理画面>一般設定>一般>全体設定>情報 に記載されているの「ID」を代わりに入力してください

        会社情報 /
        店舗情報・サイト情報 /
        担当者情報 / 
        振込先情報

        「変更する」または「変更しない」を選択してください。
        「変更する」を選択した場合、それぞれ入力欄が表示されるので、変更したい内容を記載してください。

          フォームに変更したい情報の項目が無かった場合(店舗の追加など)は、サポートデスク(ips-support@univapay.com)へお問い合わせください。
          ※メール内に必ず「加盟店ID」「加盟店名」を記載してください。

          加盟店さまの負担です。
          振込手数料は、一律400円(税別)です。

          契約内容によっては、変更が可能です。

          変更を希望する場合は、サポートデスク(ips-support@univapay.com)へお問い合わせください。
          ※メール内に必ず「加盟店ID」「加盟店名」を記載してください。

          明細書および請求書は、「明細書送付先アドレス」宛に案内します。
          書類ごとに、発行されるタイミングや記載内容、確認方法が異なります。

          発行書類 発行されるタイミング 記載内容の概要 確認方法
          売上代金支払明細書 振込日の約2~5日前
          • 集計期間内の売上
          • 決済手数料・処理料 等
          メール文面上 または 管理画面>精算 からPDFをダウンロード
          支払通知書 振込日当日
          ※振込の場合のみ
          • 口座への振込金額
          • 振込手数料
          メール文面上からPDFをダウンロード
          請求書 集計期間の翌月末日頃
          ※請求がある場合のみ
          • 請求金額
          • 振込期日(基本、請求書発行の翌月末日)
          メール文面上からPDFをダウンロード

          ※送付日は休日等の影響によって多少変動します。
          ※契約内容により、送付のタイミングが異なる場合があります。

          入金予定日が金融機関の休日や祝日と重なる場合、入金日は金融機関の翌営業日になります。
          また、加盟店さまへの入金は、支払い額が10,000円以上の場合のみ行い、10,000円未満の場合は次月へ繰り越しします。
          ※デフォルトの金額設定です

          10,000円以上の支払い額で入金がない場合は、精算担当(下記連絡先)へお問い合わせください。

          • TEL:0570-035-672
          • FAX:06-6538-2030
          • Mail:account@univapay.com

          ※メールの場合は、必ず「加盟店ID」「加盟店名」を記載してください。

          2. トランザクショントークン - CREATE

          トランザクショントークン CREATE リクエストは、クレジットカード情報を加盟店サイト内に入力させ、本サービスのAPIに送信します。
          このリクエストを行うには PCI DSS に準拠している必要があります。
          PCI DSSに準拠していない場合はこのリクエストを行うことはできませんのでご注意ください。
          PCI DSSに準拠しておりトランザクショントークン CREATE リクエストの利用をご希望の場合は、弊社までご連絡ください。

          トランザクショントークンオブジェクトに対するCREATEリクエストには以下が必要です。(括弧内は入力箇所)
          トランザクショントークンを作成した後はトランザクショントークンIDを指定して課金 / 定期課金を行ってください。

          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request POST 
          --url https://api.univapay.com/tokens 
          --header 'Authorization: Bearer {secret}.{jwt}' 
          --header 'Content-type: application/json' 

          利用できるパラメータ

          リクエストのbodyに含めることができるパラメータは以下です。

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          payment_typestring 支払い手段を参照
          typestring トークンの種類を参照
          特定の支払い手段により種類が制限される場合あり
          繰り返しに設定されていて、アカウントに無限に課金可能なトークンを作成する権限がない場合は、usage_limitパラメーターを指定する必要あり
          usage_limitstring このトークンがリカーリングトークンの場合に使用できる頻度
          無限に課金可能なリカーリングトークンを作成する権限がある場合は空白可
          emailstring メールアドレス
          ※オンライン決済は任意
          ip_addressstring ※we_chat_online(web, http_get)の場合
          消費者のデバイスのIPv4アドレス
          metadataobjectメタデータを参照
          metadata.univapay-reference-idstring (フリーフォーマット)任意の値
          metadata.univapay-customer-idstring (UUID)顧客ID
          dataobject支払い手段ごとに必要な情報が異なり、下記記載箇所よりそれぞれ詳細のパラメータを参照
          card(カードデータ), konbini(コンビニ払いデータ), online(オンライン払いデータ)のいずれか

          カードデータ

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          data.cardholderstring クレジットカードの所有者の名前
          data.card_numberstring カード番号
          data.exp_monthstring 有効期限(月)
          data.exp_yearstring 有効期限(年)
          data.cvvstring CVV値
          data.line1string 住所1
          data.line2string 住所2
          data.statestring 住所の州/地域/都道府県
          data.citystring 住所の市町村区
          data.countrystring 国 (ISO 3166-1形式のアルファベット2文字の国コード)
          data.zipstring 郵便番号
          data.phone_number.country_codestring 電話番号の国コード
          data.phone_number.local_numberstring 電話番号
          cvv_authorize.enabledbooleanセキュリティコード認証機能が有効かどうか
          デフォルト値:false
          cvv_authorize.currencystring (ISO-4217)認証を行う通貨
          デフォルト値:加盟店の基本通貨

          コンビニ払いデータ

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          data.customer_namestring消費者名
          data.phone_number.country_codestring電話番号の国コード
          日本の番号のみ可能
          data.phone_number.local_numberstring消費者の電話番号
          data.convenience_storestring消費者が支払いを選択したコンビニエンスストア
          seven_elevenfamily_martlawsonmini_stopseico_martpay_easycircle_ksunkusdaily_yamazakiyamazaki_daily_storeのいずれか
          data.expiration_periodstring (ISO-8601 Duration)支払いの有効期限(作成日から最短30分最大60日間)
          デフォルトの値:30日間
          例:P7D
          課金:Createで支払い期限日時を指定した場合はそちらを優先
          data.expiration_time_shiftstring (ISO-8601 Time with Timezone)expiration_periodを考慮した上で設定する時間
          例:expiration_periodを追加した後の有効期限が2023-06-01T15:00:00+09:00の場合、
          expiration_time_shiftを09:00:00+09:00と設定すると有効期限は2023-06-01T09:00+09:00
          ※このフィールドが設定されている場合、expiration_periodは1日以上
          ※コンビニ決済の場合のみ利用可能
          ※セブンイレブン、セイコーマート/他支払(サークルK/サンクス/ペイジー)は時刻指定が利用できないためこのフィールドは無効

          オンライン払いデータ

          オンライン払いを選択した場合、課金を作成後QR事業者側の支払い画面を呼び出すためのURLが必要です。
          イシュアトークンを取得するリクエストを別途送る必要があります。
          詳しくはこちらをご覧ください。

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          data.brandstring 使用する支払いゲートウェイ
          alipay_online(Alipay China),alipay_plus_online(Alipay+),pay_pay_online(Pay Pay),we_chat_online(WeChat Pay),d_barai_online(d払い)のいずれか
          data.call_methodstring クライアントが要求した実行方法
          http_gethttp_postsdkwebappのいずれか
          sdk:ペイメントプロバイダーが提供するSDKで直接使用すること
          web:特定のAPIを拡張した特殊なブラウザ環境で直接使用すること
          app:ペイメントプロバイダーが提供するSDKのネイティブアプリ環境での利用
          http_getまたはhttp_postを使用すると、issuer_tokenを新しいブラウザウィンドウまたは適切な対応するHTTPメソッドのiframe内で直接実行することが可能

          以下のブランドでは、以下の呼び出し方法に対応
          – alipay_online:http_gethttp_get_mobilesdk (miniapp), app
          – alipay_plus_online:http_gethttp_get_mobilesdk (miniapp), app
          – pay_pay_online:http_post
          – we_chat_online:http_get (H5), sdk (miniapp), app (in-app), web (official account)
           ※http_get (H5)の場合、リクエスト前に利用予定のウェブブラウザのドメインをサポートデスクへ連絡する必要あり
          – d_barai_online:http_post
          data.user_identifierstring 通常、ペイメントゲートウェイアプリケーションによって提供される、消費者のデバイスを一意に識別することができる消費者固有の識別子
          不正行為を防止するために一部の決済事業者が要求しているもの

          これらのコールメソッドの以下のブランドでは、消費者固有の識別子の提供が必要
          – we_chat_onlinesdk (miniapp), web (official account)
          data.os_typestring 使っているモバイルデバイスのOS
          android,iosのいずれか

          これらのコールメソッドの以下のブランドでは提供が必要
          – alipay_plus_onlinehttp_get_mobileapp

          銀行振込支払データ

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          data.brandstring 使用する支払いゲートウェイ
          aozora_bank GMOあおぞらネット銀行のみ指定可能

          Bodyの記述例

          curl --request POST 
          --url https://api.univapay.com/tokens 
          --header 'Authorization: Bearer {secret}.{jwt}
          ' 
          --header 'Content-type: application/json' 
          --data "{
          "payment_type": "card",
          "email": "test@test.com",
          "type":"recurring",
          "data": {
              "cardholder": "TARO YAMADA",
              "card_number": "4000020000000000",
              "exp_month": "12",
              "exp_year": "2099",
              "cvv": "123",
              "line1": "123 abc st",
              "line2": "apt 123",
              "state": "OR",
              "city": "Portland",
              "country": "US",
              "zip": "12345",
              "phone_number": {
                  "country_code": "1",
                  "local_number": "8029854583",
              "cvv_authorize.enabled":"true"
              },
                  "currency": "JPY"
              }
          }"

          レスポンス

          下記はBodyの記述例でリクエストした場合の例です。

          CodeとHeader

          • Code:201
          • Header:Content-Type: application/json

          Body

          {
              "id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "email": "test@test.com",
              "payment_type": "card",
              "active": true,
              "mode": "test",
              "type": "recurring",
              "usage_limit": null,
              "confirmed": null,
              "metadata": {},
              "created_on": "2024-06-25T03:58:49.321896Z",
              "updated_on": "2024-06-25T03:58:49.321896Z",
              "last_used_on": null,
              "data": {
                  "card": {
                      "cardholder": "TARO YAMADA",
                      "exp_month": 12,
                      "exp_year": 2099,
                      "card_bin": "400002",
                      "last_four": "0000",
                      "brand": "visa",
                      "card_type": "credit",
                      "country": "US",
                      "category": null,
                      "issuer": "RIVER VALLEY CREDIT UNION",
                      "sub_brand": "none"
                  },
                  "billing": {
                      "line1": "123 abc st",
                      "line2": "apt 123",
                      "state": "OR",
                      "city": "Portland",
                      "country": "US",
                      "zip": "12345",
                      "phone_number": {
                          "country_code": 1,
                          "local_number": "8029854583"
                      }
                  },
                  "cvv_authorize": {
                      "enabled": false,
                      "status": null,
                      "charge_id": null,
                      "credentials_id": null,
                      "currency": null
                  },
                  "cvv_authorize_check": {
                      "status": null,
                      "charge_id": null,
                      "date": null
                  }
              }
          }

          3. 決済・課金について

          管理画面>決済から確認できます。

          詳細は『管理画面ガイド』をご覧ください。

          課金のステータスの種類と、それぞれの状態を説明します。

          ステータス 状態
          成功 正常に決済が完了した
          処理待ち
          • クレジットカード決済の場合:決済の結果待ち
          • オンライン決済の場合:消費者がアプリ側での決済処理完了を待っている
          • コンビニ決済・銀行振込の場合:入金・振込待ち
          オーソライズ済 仮売上(決済金額の与信枠をおさえている)
          セキュリティコード認証(CVV認証)に成功した
          失敗

          決済が失敗している
          ※失敗理由はAPIリファレンス『エラーコード』から確認可能です

          エラー

          決済サーバーやデータベースエラーなどの例外的なエラーや、カードの有効期限切れなどが発生した
          ※エラーのメッセージを確認の上、不明点があればサポートデスク(ips-support@univapay.com)までお問い合わせください

          キャンセル済
          • クレジットカード決済の場合:仮売上がキャンセルされた
          • オンライン決済・コンビニ決済・銀行振込の場合:加盟店によって課金申込がキャンセルされた

          決済結果の取得方法は下記4通りです。
          加盟店さまの目的に沿った方法をご利用ください。

          管理画面

          決済タブのダウンロードボタンより、CSVレポートで決済結果のダウンロードができます。
          各検索欄で検索することで条件ごとに決済を絞り込んでダウンロードできます。

          CSVファイルの各項目については、ご利用ガイド『CSVデータのダウンロード』をご覧ください。

          コールバック

          ウィジェットのパラメータを追加することで、リダイレクト先のURLに追加される形式で、各処理結果を即時に受信できます。

          コールバックの詳細は、利用ガイド『処理結果の通知と取得』をご覧ください。

          ウェブフック

          各種処理結果について、本サービスから加盟店さまがシステム通知を受信できます。

          ウェブフックの詳細は、利用ガイド『ウェブフック』をご覧ください。

          通知メール

          各処理結果について、加盟店さま/消費者のメールアドレス宛に通知を送信できます。

          通知の詳細は、利用ガイド『処理結果のメール通知』をご覧ください。

          API

          以下2通りのリクエスト方法によって、決済結果を取得できます。

          詳細は、それぞれAPIリファレンスをご覧ください。

          CSVレポートのダウンロード手順と見方について説明します。

          ①管理画面>決済 から、日時など任意の条件に絞ってください。

          ②課金と返金それぞれのCSVレポートをダウンロードしてください。

          ③イベント(Q列)に対応する金額を、イベント金額(F列)から確認できます。
          課金と返金のファイルを照合して、加盟店さまの目的に合わせてデータを活用してください。

          例1)「イベント」:売上、「イベント金額」:100
          →100円の売上

          例2)「イベント」:返金、「イベント金額」:100
          →100円の返金

          イベントの種類とその内容は、ご利用ガイド『CSVデータのダウンロード』をご覧ください。

          トークンメタデータ(L列)または課金メタデータ(M列)から確認できます。
          商品名のメタデータのキーは univapay-product-names です。

          以下2通りの方法で、管理画面から課金を行えます。
          管理画面の操作方法は、『管理画面ガイド』をご覧ください。

          リカーリング課金

          管理画面>リカーリングトークンから、課金させたいリカーリングトークンを選択し、下部の課金ボタンから課金ができます。

          CSV課金(オプション)

          管理画面>CSV課金からCSVファイルをアップロードすることで、複数のリカーリングトークンに対して一括で課金ができます。
          ご利用をご希望の場合はサポートデスク(ips-support@univapay.com)までお問い合わせください。

          4. 設置 - (HTML/JavaScript)

          このページは初期設定が完了し、ウィジェットの概要が通読されていることを前提に作成しています。

          「ウィジェットの概要」で説明の通り、支払い方法の選択次第で「決済」でなく「申込」がなされる可能性があるため、このページでは、ウィジェットで行われる「決済または申込」を「処理」と表現します。

          HTMLで設置する

          ウィジェットをHTMLで設置するには、1行の<script>タグと、1つの<form>タグを用います。

          <form>タグの中には<span>要素でパラメータ(各種フィールドとその値)を記述します。

          アプリトークンは非常に長く規則性のない文字列なので、事前に管理画面でアプリトークンを控えるか、ジェネレータからのコピーを推奨します。

          サンプルコード

          以下は、「支払う」と表示されたボタンでの、1000円を決済するためのウィジェットの設置例です。

          <script src="https://widget.univapay.com/client/checkout.js"></script>
          <form action="<任意のURL>">
           <span data-app-id="<アプリトークンID>"
                data-txt="支払う"
                data-checkout="payment"
                data-amount="1000"
                data-currency="jpy"
                data-auto-submit="true"
           ></span>
          </form>

          処理完了後の動作

          処理の完了後、form action= で指定した”<任意のURL>”に対し、以下をsubmitします。

          • トランザクショントークン(data-checkout-type=“token”指定時には univapayTokenId
          • 決済番号(data-checkout-type=“payment” 指定時には univapayChargeIddata-token-type=“subscription” 指定時には univapaySubscriptionId

          処理結果によって、消費者の画面遷移をコントロールしたい場合は、これらを取得するプログラムを作成してください。

          パラメータ(基本動作)で解説の通り、data-auto-submitを利用することにより、完了ボタンを押してウィジェットを閉じた時、ウィジェットが含まれるフォームを自動でsubmitする設定も可能です。

          上記を利用して、spanタグの外側に設置したformタグのaction属性に指定したURLに遷移するようにすることも可能です。

          JavaScriptで設置する

          Javascriptでウィジェットを設定する際は、<script>タグを利用することで、HTMLファイル内にJacaScriptのコードを埋め込んでウィジェットを設置することもできます。

          サンプルコード

          以下は、「支払う」と表示されたボタンでの、1000円を決済するためのウィジェットの設置例です。

          <script src="https://widget.univapay.com/client/checkout.js"></script>
          
          <form id="payment-form" onSubmit="handleSubmit()">
            <button id="univapay-payment-checkout">
             支払う
            </button>
          </form>
          
          <script>
            var checkout = UnivapayCheckout.create({
              appId: "<TOKEN>",
              checkout: "payment",
              amount: 100,
              currency: "jpy",
              cvvAuthorize: true,
            });
          
          
            var button = document.querySelector("#univapay-payment-checkout");
            button.onclick = function () {
              checkout.open();
            };
          
            function handleSubmit() {
            event.preventDefault();
          };
          </script>

          まず、ウィジェットを含むページに次の行をHTMLでの設置と同様に含める必要があります。

          <script src="https://widget.univapay.com/client/checkout.js"></script>

          HTMLでの設置とは異なり、自動的にページ上にボタンは作成されませんので、<form>タグと<button>タグで送信するための記述をします。
          submitイベントが発火に反応して、onSubmitに指定された関数”handleSubmit()”を呼び出します。

          <form id="payment-form" onSubmit="handleSubmit()">
            <button id="univapay-payment-checkout">
             支払う
            </button>
          </form>
          
          <script>
          <!--
          タグ内にJavaScriptの記述をします
          内容は以下で説明
          -->
          </script>

          次に、UnivapayCheckout.createを呼び出す記述をします。
          例えば、1000円の支払いを処理するウィジェット・オブジェクトを作成するには、以下を記述する必要があります。

          var checkout = UnivapayCheckout.create({
            appId: "<TOKEN>",
            checkout: "payment",
            amount: 1000,
            currency: "jpy",
          });

          次に、<button>タグのonclick関数の処理を記述します。UnivapayCheckout.createによって返されたオブジェクトでopen関数を呼び出すことにより、ウィジェットを開きます。

            var button = document.querySelector("#univapay-payment-checkout");
            button.onclick = function () {
              checkout.open();
            };

          最後に、formの送信を防ぐため、<button>要素をクリックしてsubmitイベントが発火した際の関数handleSubmitの記述をします。

            function handleSubmit() {
            event.preventDefault();
          };

          ウィジェットのデザインを制御するパラメータ

          以下パラメータにより、ウィジェットのデザインが変更可能です。
          その他、どんな処理をさせるか等の動作詳細は、左メニューから各種パラメータを参照のうえ、実装してください。

          各フィールド名について

          • data-で始まる、ケバブケース(kebab-case)で記載のフィールド名はHTML用
          • 2行目にローワーキャメルケース(lowerCamelCase)で記載のフィールド名はJavaScript用
          • いずれかしか記載のないものは、いずれかのみで利用可能
          フィールド許容する値備考省略時の値
          data-textテキスト(無制限)ウィジェットを展開するためのボタン内テキストPay with UnivaPay
          data-size半角英ウィジェットを展開するためのボタンサイズ
          指定可能な値:
          small,normal,large
          data-class半角英数ウィジェットを展開するためのボタンのclass属性に付与する値
          webサイト側のstyleを記述を適用可能
          data-style半角英数ウィジェットを展開するためのボタンのstyle属性に付与する値
          webサイト側のstyleを適用せず、インラインでstyle記述したい場合に利用
          data-hover-style半角英数ウィジェットを展開するためのボタンのhover時のstyle(インライン記述)
          data-header
          header
          テキスト(無制限)ウィジェットのヘッダーに表示したいテキスト本サービス名
          data-title
          title
          テキスト(無制限)ウィジェットのサブヘッダーに表示したい店舗名管理画面での設定に依存
          data-description
          description
          テキスト(無制限)ウィジェットのサブヘッダーの、店舗名の下に表示したいテキスト管理画面での設定に依存
          data-submit-button-text
          submitButtonText
          テキスト(無制限)ウィジェットの「支払い」ボタンに、代わりに表示したいテキスト支払う
          記述ルールについては免責事項を参照してください

          ウェブフック

          処理の結果は、JSONデータとして管理画面の「Webhook」セクションで指定されたURLにPOSTされます。

          「リファレンス > ウェブフック」を参照して、POSTされたデータを取得して注文状況などを更新するスクリプトを作成してください。

          コールバック

          ウィジェットタグ内のソースコードに下記の関数を定義しておくことで、各イベントが発生した時にその内容を含めた通知を実行します。
          処理結果に応じて元のページの表示内容や、遷移先をコントロールしたい場合は、こちらか、フォームタグからsubmitされる値を利用してください。

          イベント内容
          Opened (univapay:opened)決済フォームを開くことで発生するイベントです。その他の情報は含みません。
          Closed (univapay:closed)決済フォームを閉じることで発生するイベントです。他の情報は含みません。
          Success (univapay:success)決済が成功すると発生するイベントです。生成されたリソースのIDと処理の詳細情報が含まれます。
          Error (univapay:error)いずれかの段階で処理が失敗することで発生するイベントです。生成されたリソースのIDが含まれます。
          Token created (univapay:token-created)トランザクショントークンが作成されたときに発生するイベントで、トークンの詳細情報を含みます。定期課金やリカーリング課金のように作成済のトランザクショントークンを利用して決済をする場合は発生しません。
          Charge created (univapay:charge-created)課金が作成されたときに発生するイベントで、課金の詳細情報が含まれています。成功したかどうかに関わらず発生します。
          Subscription created (univapay:subscription-created)定期課金が作成されたときに発生するイベントで、定期課金の詳細情報が含まれています。成功したかどうかに関わらず発生します。
          Validation error (univapay:validation-error)このイベントには各フィールドにエラーがある場合に発生します。エラーがない場合、または各フィールドがまだ選択されていない場合、オブジェクトにはオブジェクトは空白になります。

          コールバックのサンプル

          <script>
              window.addEventListener("univapay:success", (e) => { console.info("Success event", e) }, false);
              window.addEventListener("univapay:token-created", (e) => { console.info("Token event", e) }, false);
              window.addEventListener("univapay:charge-created", (e) => { console.info("Charge event", e) }, false);
              window.addEventListener("univapay:subscription-created", (e) => { console.info("Subscription event", e) }, false);
              window.addEventListener("univapay:validation-error", (e) => { console.error("Validation error event", e) }, false);
          </script>

          5. 一般

          ここでは、特定のオブジェクトに紐づかない項目について説明します。

          5.1 API連携、SDKについて

          APIとは、様々な決済手段を提供する RESTfulな HTTPS インターフェースです。

          API を呼び出す為に、直接 HTTP リクエストを実行することも可能ですが、いくつかの開発言語向けにライブラリを提供しています。これらは様々なベストプラクティスや、型情報を提供するので、APIの統合をより簡単に行うことができます。これらの使用例は、本ドキュメントのリソースに対する呼び出し例として記載されています。

          API連携

          画面遷移をシンプルにする等の理由で、加盟店サイト内に独自の決済フォームを設けたい場合は、API連携を行ってください。

          クレジットカード情報の送信を伴う場合

          クレジットカード情報を加盟店サイト内に入力させ、APIに送信する場合は、カード情報の「通過」にあたるため、加盟店サイトがPCI DSSに準拠することが必要です。
          PCI DSSに準拠していない場合、カード情報は当社準備の決済フォームを利用する構築をしてください。
          PCI DSSに準拠している場合、トークン化から課金、返金までの全てのリクエストを本サービスのAPIに送信することが可能です。

          APIの呼び出しについて

          APIはシークレットトークンなどの機密情報を含むためCORSでの実行を許可していません。
          APIを呼び出す場合はサーバーアプリケーションから呼び出すよう実装してください。

          SDK

          ここでは、API連携開発をシンプルにする「SDK」について説明します。

          APIとの連携開発を行う際は、本ドキュメントを参照して設計・開発してください。
          開発言語が対応しているようであれば、SDK(Software Development Kit)の利用を推奨します。

          SDKは、APIを利用するためのライブラリです。GitHub上で公開しています。
          利用フローについては、Githubの「Readme」を参照してください。

          SDK利用のメリット

          • APIと通信するためのコードを記述する必要がない
          • セキュリティ(トークンの有効期限や利用回数制限のアルゴリズム)の取り扱いについても考慮する必要がない

          SDKの機能やツール例

          IDE、オートコンプリート、コンパイルエラー etc…

          GitHubについて

          GitHubは、ソフトウェア開発プロジェクトのためのソースコード管理サービスです。
          GitHubの公式言語は英語で、アカウント設定画面から言語を日本語に指定することはできません。以降、最低限必要なアクションを日本語で解説します。

          技術的な不明点や、Github内ドキュメントへのフィードバックがある場合

          SDKの組込において技術的な質問がある場合や、ドキュメントへのフィードバックがある場合は、該当のリポジトリ※から「Issues」を選択し、当社エンジニアに質問・要望を日本語または英語で送信してください。

          リポジトリとは:
          「格納庫」を意味する言葉で、Githubでは組織またはプロジェクトの階層下に設置されるサブプロジェクトのような存在です。例:https://github.com/univapay/univapay-java-sdk
          この場合は「univapay-java-sdk」がリポジトリです。

          サポートしている開発言語

          5.2 認証

          本サービスのAPIは、認証の為に JWT(JSON Web Token) を利用しています。

          ヘッダで認証を行い、ペイロード部分にリクエストを記述するのが基本的な使い方です。

          アプリケーショントークンの構成

          はじめに、ガイドの初期設定に従い、アプリケーショントークン(以降「アプリトークン」)を作成してください。

          アプリケーショントークンは、「トークン」と「シークレット」の2部で構成されます。

          シークレットは、アプリトークンを作成した時だけ表示されます。
          表示されたシークレットは、くれぐれも忘れずに控えるようにしてください。

          また、このシークレットは機密情報として取り扱う必要があります。
          消費者のブラウザ上で実行されるようなフロントエンドアプリケーションのコードの中にシークレットを記述したり、インターネットで第三者が閲覧できる状態にしないでください。
          レポートの生成、ブラウザ以外の経路での課金の作成など、サービスのバックエンドでの処理で利用されることを想定している、たいへん大きな権限を行使できる情報です。

          当社では、加盟店さまのシークレットの管理上の問題に起因する事故について、一切の責任を負いかねます。

          アプリトークンの使い方

          以降、全てのページで、HTTPリクエストヘッダのAuthorizationに記述する

          • アプリトークンを「{jwt}
          • シークレットを「{secret}

          と、それぞれ記述します。

          Bearer認証の記述例

          // シークレットなし
          Bearer {jwt}
          
          // シークレットあり
          Bearer {secret}.{jwt}

          アプリトークンの種類

          管理画面からは、2種類のアプリトークンを作成可能です。
          それぞれの意味合いと役割を表にしたものが以下です。

          名前アプリトークンの権限シークレットの要否
          加盟店トランザクショントークンと課金の作成のみ不可必要
          店舗その「店舗」に対する全てのリクエストが可能ブラウザ上では不要
          バックエンドからAPIへリクエストする際には必要
          ※現在は1つの「加盟店」に対し複数の「店舗」を登録しない運用をしていますので、現実的には「加盟店」権限のアプリトークンは発行・活用の価値がありません。

          ウィジェットやインラインフォーム出力リクエストは、登録したドメインからであることを認証しています。
          管理画面で「店舗」のアプリトークンを作成する際には、ドメインを登録してください。

          5.3 APIの制限

          本サービスのAPIには、レート制限と、リソース制限の2種類の制限があります。

          また、このレート制限とは別に、クレジットカード決済において同一の

          • リカーリングトークン
          • 金額

          の組み合わせで、30秒以内に課金処理すると重複エラー(エラーコード:311)にを起こす仕様があります。
          これは、重複課金を防止する事を目的としています。

          レート制限

          本サービスのAPIは、アクセス先のリソースとパスに応じて「レート制限」を設定しています。

          APIへのリクエスト元は、リクエストを行う度に「バーストレート」と呼ばれるものをレスポンスで受け取ります。
          バーストレートは一度に送信できるリクエストの残高のような役割を果たします。
          バーストレートは一定時間で補充されますが、使い果たした状態でリクエストを行うと、Too Many Requestsのエラーが発生します。
          このバーストレートは、リクエストに対するレスポンスのヘッダで取得できます。

          ヘッダの出力例

          以下は、イグザクトバーストレートの上限が10、ルートバーストレートの上限が30に設定されたAPIへ、1件だけGETのリクエストを送った直後のレスポンス例です。

          X-Remaining-Requests-Exact: 9
          X-Remaining-Requests-Route: 29
          X-Requests-Per-Minute-Exact: 120
          X-Requests-Per-Minute-Route: 1200

          意味合いとしては、以下の通りです。

          • 1回あたりのイグザクトバーストレート:残り9
          • 1回あたりのルートバーストレート:残り29
          • 1分あたりのリクエスト上限(イグザクト):120
          • 1分あたりのリクエスト上限(ルート):1,200

          イグザクトバーストレートの上限が10であるため、1件のリクエストは許容され、イグザクトバーストレートが「9」、パスバーストレートが「29」に、それぞれ減算されレスポンスされています。

          イグザクトバーストレートは、0.001(1ミリ)秒ごとに0.02(この場合は1分あたり上限÷1分間のミリ秒換算=1,200/60,000)だけ回復します。
          つまり、仮に次回10件のリクエストをするなら、イグザクトバーストレートが10まで回復するのを待つ必要があり、最短で0.05秒(1/0.02=50ミリ秒)の待機が必要になるということです。

          なお、元のイグザクトバーストレートの上限が10であるため、0.05秒以上の待機をしても、上限の10以上まで増えることはありません。

          レート制限の種類

          各種レート制限には規定値が設定されており、規定値のあるものが、リクエストへのレスポンスのヘッダに出力されます。

          課金レート制限

          課金の作成に関するリクエストを行う際にカウントされます。

          対象APIX-Remaining-Requests
          (バーストレート)
          X-Requests-Per-Minute
          (1分あたりのリクエスト上限)
          POST /tokens
          POST /charges
          POST /subscriptions

          上限:100
          3,000/分

          これらのリクエストに対して

          • バーストレート
          • 1分あたりのリクエスト上限

          が、レスポンスされます。

          後述する標準レート制限が同時に適用されることはなく、レスポンス内容も異なります。

          標準レート制限

          標準レート制限は、以下2つに分類されます。
          なお、全てのリクエストに対して

          • イグザクトバーストレート
          • ルートバーストレート
          • 1分あたりのリクエスト上限(イグザクト)
          • 1分あたりのリクエスト上限(ルート)

          が、レスポンスされます。

          また、全てのリクエストでルートバーストレートとイグザクトバーストレートの両方がカウントされます。
          この制限が課金レート制限と同時に適用されることはなく、レスポンス内容も異なります。

          ルートバーストレート

          アクセスするリソースの「パス」に対しての制限です。例えば

          GET /charges/{charge_id_1} 
          GET /charges/{charge_id_2} 

          という2回のリクエストは、「/charges」という同一のパスに対するものであるため、1つのパスに対し2回リクエストしたとカウントされます。
          本サービスは全てのパスに対し、同一のルートバーストレートを設定しています。

          対象X-Remaining-Requests-Route
          (ルートバーストレート)
          X-Requests-Per-Minute-Route
          (1分あたりのリクエスト上限:ルート)
          全てのパス上限:301,200

          イグザクトバーストレート

          イグザクトバーストレートは、Exact(完全一致)の名の通り、リソースIDやクエリ文字列も含めて完全に一致するパスに対して適用されます。例えば

          GET /charges/{charge_id_1}

          というリクエストがされた場合は、この/charges/{charge_id_1}に対して、カウントされます。
          本サービスは全てのリクエストに対し、同一のイグザクトバーストレートを設定しています。

          対象X-Remaining-Requests-Exact
          (イグザクトバーストレート)
          X-Requests-Per-Minute-Exact
          (1分あたりのリクエスト上限:イグザクト)
          全てのクエリ上限:10120

          リソースの制限

          1つの加盟店または店舗で、有効にできるリソース数には上限があります。
          この上限を超えるリソースの作成リクエストには、ResourceLimitReachedエラーが出力されます。

          リソース上限
          webhook(ウェブフック)20
          jwt(アプリトークン)20
          パスワードリセットトークン5回/日
          テスト課金1440件/日

          5.4 レスポンス

          当社APIからのレスポンスは JSON 形式で返されます。

          レスポンスと共に返されるHTTPステータスコードによって、リクエストの結果を判別できます。
          APIの呼び出しが失敗すると、HTTP ステータスコードが 4xx もしくは 5xx 系統で返されます。

          詳細はエラーコードを参照ください。

          5.5 ページネーション

          リストとして返されるすべてのリソースはページネートされリソースの作成日の降順でソートされます。
          ページあたりのアイテムの件数はデフォルトで10件です。

          ページネートされたリストの形式

          • items(array):リソースのリスト
          • has_more(boolean):表示されているリストの最後のリソースの次に更にリソースがあるかどうか
          {
            "items": [],
            "has_more": false
          }

          次ページのリソースの取得

          以下のパラメータを指定することでリストの次のページを取得することが可能です。

          • limit(number):10–100の範囲の整数で返却するリソースの数
          • cursor(string):リソースの取得開始位置を指定する為のリソースのID
                     このリソースの次のリソースから取得され、このIDで指定したリソースはレスポンスには含まない
          • cursor_direction:リソースのソート順で、asc (昇順) もしくは desc (降順)

          例えば、以下のリクエストで最初の100個の課金(Charge)リソースを取得することができます。

          curl -h 'Authorization: Bearer {secret}.{jwt}' https://api.univapay.com/charges?limit=100
          {
            "items": [
              {
                "id": "4050058b-646a-4fae-8876-babf0dc0c3f0"
                ...
              },
              ...
              {
                "id": "34daac6d-63a8-485b-a9ea-75a2e24a258d"
                ...
              }
            ],
            "has_more": true
          }

          "has_more":true となっているのでさらにリソースがある事がわかります。
          次の100件の課金を取得するには、リストの最後のリソースID34daac6d-63a8-485b-a9ea-75a2e24a258dをリクエストパラメータのcursorとして指定します。

          curl -h 'Authorization: Bearer {secret}.{jwt}' https://api.univapay.com/charges?cursor=34daac6d-63a8-485b-a9ea-75a2e24a258d&limit=100

          5.6 メタデータ

          以下の新規リソース作成時にメタデータ付与 / 既存リソースのメタデータ更新が可能です。

          付与できるメタデータの個数に制限はありませんが、リクエストボディ全体は最大256KBです。

          メタデータはフラットなJSONとして保存されます。
          本サービスと加盟店のシステム上のレコード(消費者や消費者による注文データ等)とを関連付けるために使用することを推奨します。

          有効なメタデータの例

          {
            // Other request parameters
            "metadata": {
              "customer_id": 12345,
              "shipping_details": "Customer wants it now"
            }
          }

          5.7 ポーリング

          概要

          ポーリングとは、対象のトランザクションに対してステータスの変化を検出するまで GET リクエストを行い、トランザクションのステータスが変化したタイミングで通知を受け取れる実装方法です。

          当社APIのトランザクションは、作成直後に処理中(pending)のステータスになりますが、処理結果がクレジットカード会社などの決済事業者によって反映されていない状態のため、参考になる情報ではありません。
          そのため、決済を行った後、消費者に対して決済の状態をなるべく早く反映させたい場合は、ポーリングの利用を推奨します。

          ポーリングではなく、ウェブフックを利用してステータスを取得する場合は、こちらのページを参照してください。

          ポーリング可能なリソース

          以下4つのリソースに対して、1回のAPIリクエストでトランザクションのステータスを効率的にポーリングする手段を提供しています。

          これらのリソースに GET リクエストを送信する時、リクエストURLに対してクエリパラメータで polling : true と指定すると、対象のリソースが最終的な状態に遷移するまでAPIの内部でポーリングします。

          例)課金の GET リクエスト
          https://api.univapay.com/stores/{storeId}/charges/{chargeId}?polling=true

          リソースごとの、最終的な状態を表すステータスは下記の通りです。

          リソース最終的な状態を表すステータス
          課金Canceled, Error, Failed, Successful
          返金Error, Failed, Successful
          キャンセルError, Failed, Successful
          定期課金

          最初の状態が、課金:処理中(pending) / 定期課金:待機中(Unverified)の場合、何かしらステータスが変化したタイミングで「最終的な状態」とみなし、ポーリングは終了します。

          注意点

          ポーリング利用時は、以下の点に注意してください。

          • ポーリング実行から3秒以内にステータスが変化した場合、更新されたレスポンスを返します。
            ステータス変更がない場合は、状態が何であっても3秒後時点の状態を返します。
          • GETリクエストのレスポンスが502,503,504のエラーだった場合は、一時的な通信環境の悪化が原因の可能性があるため、数秒後に再度リクエストを行うと、結果が成功(Successful)になる場合があります。
            そのため、これらのエラーが返却された場合、すぐに決済失敗と判断しないよう注意してください。
          • 当社提供のパラメータを利用せず、加盟店さま側で独自にポーリング処理を実装する場合、APIの制限を受けないよう適切なエラー処理を行ったポーリングの仕組みを実装する必要があります。
            そのため、当社の提供する手段を利用した実装を推奨します。

          5.8 冪等なリクエスト

          当社APIでは冪等なリクエストを行うことができます。
          冪等性は強力な安全性を提供するため、予期しない理由などで1つのリクエストが複数回実行されないようにし、重複決済を防ぐことができます。

          利用可能なメソッド

          冪等性リクエストは POSTPATCH リクエストでのみ利用可能です。
          特にトランザクショントークン、課金、定期課金、返金などの作成や更新時は、常に冪等性リクエストを使用することを推奨します。

          利用方法

          上記、利用可能メソッドのリクエストヘッダに Idempotency-Key キーを指定することで利用可能です。
          ※任意の文字列を指定できますが、UUIDのようにランダムに生成された文字列を使用することを推奨します

          ※冪等性の保証は現在ベストエフォートで提供されており、冪等性のチェックができない状態が発生する可能性があります。
          この場合リクエストが処理された後、レスポンスの Idempotency-Status ヘッダに error が入ります。

          冪等性リクエストの仕組み

          リクエストに冪等性キーが指定された場合、当社APIはまず、以前に同じキーのリクエストが処理されたかを確認します。

          • 既に処理されていた場合:そのリクエストを再度処理せずに、API内部のキャッシュに保存されている過去のレスポンスを返却します。
          • まだ処理されていなかった場合:通常どおりリクエストを処理し、将来冪等性リクエストが来る時に備え、レスポンスの内容を冪等性キーをキーとしてAPI内部のキャッシュに保存します。

          ※冪等性キーの有効期間は24時間です。同じ冪等性キーの2回目リクエストがこの期限を過ぎてしまった場合、APIはこれを1回目のリクエストとみなして実行してしまいます。

          レスポンス

          冪等性リクエストのレスポンスには、Idempotency-Status ヘッダが含まれます。(以下表参照)

          説明
          disabled冪等性リクエストをサポートしていない
          successfully_storedこのレスポンスは指定された冪等性キーとして保存され。※
          同じキーを使用した次回のリクエストは、この保存されたレスポンスが返される
          retrieved_idempotent_responseリクエストは実際には処理されず、指定した冪等性キーとして保存されているレスポンスが返された
          errorAPI内部のキャッシュからレスポンスの取得する時、もしくはキャッシュに処理結果を保存時に何らかのエラーが発生した為、冪等性のチェックができなかった
          リクエストされた処理は実行されている
          conflicting_key指定された冪等性キーが以前に異なるAPIやメソッドで使用されている
          ※これはキーが使用された初回に発生します

          冪等性リクエストによる課金制限の変更

          同一リカーリングトークンまたは同一カードに対して同一金額 ※ で連続して課金を行う場合、30秒以下の間隔で実行しようとすると、課金制限によってエラー「400 CHARGE_TOO_QUICK」が発生します。
          ※定期課金に関して、以下の場合のみ、違う金額でも課金制限が適用されます。

          • 同一カードに対して、連続して定期課金を行う場合
          • 同一リカーリングトークンに対して、連続して行う課金の種類が異なる場合(都度課金後、定期課金 / 定期課金後、都度課金)

          課金制限は、冪等性キーの実装 かつ サポートデスクへの依頼によって、最短1秒に変更可能です。
          同一消費者に対して連続で課金できる間隔を短縮したい場合は、サポートデスク(ips-support@univapay.com)へお問い合わせください。

          5.9 通貨と為替レート

          本サービスは主要な通貨で直接決済を行うことができますが、直接決済できない通貨の場合には決済処理時に自動で変換することができます。
          ドルの場合セントという2桁の補助単位がありますが、通貨単位のドルと補助単位のセントを合わせて一つの整数にしてリクエストしてください。例えば、10.00ドルは、1000と送ります。
          直接決済可能な通貨は以下の通りです。

          • JPY 日本円
          • USD 米ドル

          ※接続しているアクワイアラ(カード会社)やセンター(カード会社と紐づくオンライン処理用のセンター)で許可されている通貨であることが必須です。
          加盟店さまで直接決済が利用可能な通貨についてはサポートデスクにお問い合わせください。

          直接決済に対応していない通貨を使用する場合、振込先の銀行口座に設定してある通貨に自動的に変換されます。
          設定された通貨が使用できない場合は、デフォルト設定である日本円に変換されます。
          請求情報には変換後の通貨が使用されますので、別の通貨に変換される場合は、カード利用者に通知するようにして下さい。

          6. システム移行のご案内

          全体案内

          完全移行期限

          2025年3月31日

          こちらの期限はラッパー利用店舗も対象です。
          ※ラッパーとは
           旧システムで実装されている決済送信先及び決済リクエストパラメータ変更の必要がなく、新システム側で決済が稼働できる機能。

          移行の理由

          • 決済処理機能の向上
          • クレジットカード情報管理、各種決済において決済システムのセキュリティ向上を目的とする変更

          移行対象の決済サービス

          • クレジット決済
          • Alipay決済(オンライン)
          • WeChat Pay決済(オンライン)
          • コンビニ決済
          • Paidy決済(トークン情報の移行機能は開発中)
          • 口座振替(口座振替サービスのみ移行スケジュールは未定)

          ※https://cp.ccps.jp/の管理画面でご利用できるサービスが対象で、対面QR決済サービスは対象外です。
          下記決済サービスに関しては新システムでは取り扱いを行いません。

          • 楽天Edy決済
          • メタップスコンビニ決済
          • メタップスC-CHECK

          移行完了までの流れ

          1. 新システムにてログイン等の確認
          2. マニュアルや本ドキュメントを確認し、新システムでのテスト決済や動作確認を実施
          3. 新システムで運用を開始
          4. 新システムでの運用に支障がなければその旨を当社へ返信していただく
            返信時は「店舗ID」と「店舗名」を必ず記載してください。
          5. 4.の返信をいただくことで移行完了と判断します
            連絡がない場合は当社から移行の進捗確認メールなどを送信する場合があります。

          移行に関してのご案内文

          加盟店さまにメールで通知した案内文はこちらを確認して下さい。
          ※本文中のURLは一部差し替えを行っています

          7. 免責事項

          本ドキュメントについて

          目的

          本ドキュメントは、「国際ブランドが付帯したカードの決済」「PayPayオンライン決済」「Paidy決済」「銀行振込決済」「コンビニ決済」「Alipay Online決済」「Alipay + Online決済」「Wechat Online決済」を行うために、univapay.comドメインで展開する決済システム(以降「本サービス」という)の利用について記述したものす。

          本ドキュメントは、加盟店さまやシステム連携先さまに、本サービスを利用開始するまでの設計・開発を可能とするためのものです。

          本ドキュメントは、予告なく変更されることがあります。

          使用言語

          本ドキュメントは、日本語を使用して作成しています。
          他言語で閲覧したい場合は、ブラウザの翻訳機能を利用してください。

          問い合わせは、日本語・英語にて受け付けています。

          パラメータの表記ルール

          本ドキュメントでは、各プログラミング言語の仕様に準じ、以下の通り表記しています。

          設置(記述)方法フィールド名のケースフィールド名の記述例値のケース値の記述例
          HTMLkebab-case
          (ケバブケース)
          すべて小文字、ハイフン区切りで記述
          data-foo-bar-baz
          ※始めにdataが必要
          snake_case
          (スネークケース)
          すべて小文字、アンダースコア区切りで記述
          foo_bar
          JavaScriptlowerCamelCase
          (ローワーキャメルケース)
          1語目のみ小文字始まり、2語目以降は頭文字のみ大文字
          fooBarBaz

          メタ構文変数

          本ドキュメントでは、上記表のように「メタ構文変数」を、foo bar baz qux quux … と表記します。これらを「実際には様々変化し得る部分」と解釈してください。

          クレジットカード情報の送信を伴う処理について

          消費者のクレジットカード情報を加盟店サイト内に入力(通過か保持)させ、本サービスの APIに送信する場合は、カード情報の「通過」にあたるため、加盟店サイトがPCI DSSに準拠することが必要です。

          システムの定期アップデートについて

          本サービスは利便性や品質向上のため、隔週月曜日(※)の15時より小規模なシステムアップデートのリリースを行っています。

          大幅な変更を伴うリリースはシステム連携先さまや加盟店さまへ事前通知しますが、軽微な更新は通知なく行いますので、ご承知おきください。

          ※定期リリース日時は改修内容よって、多少前後することがあります

          動作確認しているブラウザ

          以下以上のバージョンで、本サービスの動作を確認しています。

          ブラウザバージョン
          Google Chrome80
          Microsoft Edge80
          Mozilla Firefox72
          Apple Safari13.1
          Apple Safari(iOS)13.4
          Opera67

          8. はじめに(利用方法)

          本サービスを利用開始するためのガイドです。
          利用開始前に、必ずご通読ください。

          8.1 免責事項

          本ドキュメントについて

          目的

          本ドキュメントは、「国際ブランドが付帯したカードの決済」「PayPayオンライン決済」「Paidy決済」「銀行振込決済」「コンビニ決済」「Alipay Online決済」「Alipay + Online決済」「Wechat Online決済」を行うために、univapay.comドメインで展開する決済システム(以降「本サービス」という)の利用について記述したものす。

          本ドキュメントは、加盟店さまやシステム連携先さまに、本サービスを利用開始するまでの設計・開発を可能とするためのものです。

          本ドキュメントは、予告なく変更されることがあります。

          使用言語

          本ドキュメントは、日本語を使用して作成しています。
          他言語で閲覧したい場合は、ブラウザの翻訳機能を利用してください。

          問い合わせは、日本語・英語にて受け付けています。

          パラメータの表記ルール

          本ドキュメントでは、各プログラミング言語の仕様に準じ、以下の通り表記しています。

          設置(記述)方法フィールド名のケースフィールド名の記述例値のケース値の記述例
          HTMLkebab-case
          (ケバブケース)
          すべて小文字、ハイフン区切りで記述
          data-foo-bar-baz
          ※始めにdataが必要
          snake_case
          (スネークケース)
          すべて小文字、アンダースコア区切りで記述
          foo_bar
          JavaScriptlowerCamelCase
          (ローワーキャメルケース)
          1語目のみ小文字始まり、2語目以降は頭文字のみ大文字
          fooBarBaz

          メタ構文変数

          本ドキュメントでは、上記表のように「メタ構文変数」を、foo bar baz qux quux … と表記します。これらを「実際には様々変化し得る部分」と解釈してください。

          クレジットカード情報の送信を伴う処理について

          消費者のクレジットカード情報を加盟店サイト内に入力(通過か保持)させ、本サービスの APIに送信する場合は、カード情報の「通過」にあたるため、加盟店サイトがPCI DSSに準拠することが必要です。

          システムの定期アップデートについて

          本サービスは利便性や品質向上のため、隔週月曜日(※)の15時より小規模なシステムアップデートのリリースを行っています。

          大幅な変更を伴うリリースはシステム連携先さまや加盟店さまへ事前通知しますが、軽微な更新は通知なく行いますので、ご承知おきください。

          ※定期リリース日時は改修内容よって、多少前後することがあります

          動作確認しているブラウザ

          以下以上のバージョンで、本サービスの動作を確認しています。

          ブラウザバージョン
          Google Chrome80
          Microsoft Edge80
          Mozilla Firefox72
          Apple Safari13.1
          Apple Safari(iOS)13.4
          Opera67

          8.2 利用方法

          本サービスには、大きく分けて2通りの利用方法があります。
          いずれの方法でも初期設定が必要です。

          ①本サービスと商用サイトとを連携せずに利用する

          本サービスの管理画面を用いて、決済金額を加盟店さまにて設定し、作成したフォームのURLを消費者に提供することが可能です。
          上記の運用方法の場合は、こちらをご覧ください。

          ②本サービスと商用サイトとを連携する

          本サービスは、プログラムを記述することでオンライン上にある加盟店さまの商用サイトと連携することが可能です。
          予め、システム連携先さまによって、簡易な設定のみで利用可能となっている場合もあります。

          具体的には、以下のよう「初回決済(トークン化)のリクエスト方法」と「決済結果の取得方法」を設計・開発することを本サービスでは「連携」と定義しています。

          初回決済(またはトークン化)のリクエスト方法

          の3通りのインターフェイスを用意しています。詳しくはリンク先を参照してください。

          PCI-DSSに準拠している加盟店さまの場合、APIに対して直接カード情報を送信して決済することも可能です。

          決済結果の取得方法

          決済の完了後には、ウェブフックやAPIへのリクエストで結果を取得できます。

          ただし、ウェブフックによる結果取得はあくまで簡易的なもので、到達を保証するものではありません。エラーの種類によってはリトライを実行します。詳細はこちらをご覧下さい。
          何かしらの原因で取得できなかった場合は、APIにリクエストすることで能動的に取得することを推奨します。

          8.3 初期設定

          本サービスを利用するためには、いくつかの設定を管理画面で行う必要があります。
          このページでは、利用開始までの大まかな流れを説明します。

          1. アプリトークンの作成

          アプリトークンとは、どの店舗で決済を行うかの判別のためのキーとして機能します。
          全ての決済でアプリトークンは必須です。

          管理画面>アプリトークンの「新規作成」を押下し「店舗」のアプリトークンを作成してください。
          利用方法によってアプリトークン作成時の行動および次に読むページが異なるため、以下を参照ください。

          利用方法アプリトークン作成時の行動次に読むべきページ
          システム連携せずに利用
          (リンクフォームを利用)
          シークレットを控えておく必要はありません。利用ガイド『管理画面の使い方』を参照ください。
          このページを以降読む必要はありません。
          システム連携して利用
          (ウィジェット、インラインフォームを利用)
          シークレットを控えておく必要はありません。
          利用するWEBサイトのドメインを登録する必要があります。
          このページを読み進めてください。
          システム連携して利用
          (APIでリクエスト)
          シークレットを控えておく必要があります。このページを読み進めてください。

          2. ウェブフックの作成(任意)

          ウェブフックを作成すると、本サービスでの処理結果を、加盟店さまが指定したURLにHTTP POSTリクエストで通知するようになります。
          消費者の遷移とは近いタイミングで実行しますが、必ずしも同期するとは限りません。

          加盟店さま側のシステム(カートや受注管理のシステム)と連携したい場合は作成してください。

          ただし、ウェブフックはあくまでも即時性を担保するための簡易的な仕組みで、到達を保証するものではないため、決済結果の判定をウェブフックのみに依存することは非推奨です。
          精度の高い判定を求める場合は、APIへ決済結果取得をリクエストする仕組みを設計、実装してください。

          画面遷移のコントロールがしたい場合は、ウィジェットやインラインフォームからのコールバック、リンクフォームからのリダイレクト設定でも可能です。

          ウェブフックを受信する仕組みの作成には、SDKを利用できます。

          メールや管理画面で処理結果を確認するので十分なら、この設定は必要ありません。

          ※詳細はこちら

          3. 決済フォームと課金方式の種類を選ぶ

          アプリトークンとウェブフックを作成した後は、サイト構成やサービス内容に沿った、当社の決済フォームと課金方式を選びます。

          ①決済フォームの種類を選ぶ

          • ウィジェット(全ての支払い方法が利用可能)
          • インラインフォーム(クレジットカードのみ利用可能)
          • リンクフォーム(全ての支払い方法が利用可能)

            ※各決済フォームの詳細、選び方についてはこちら

          ②課金方式を選ぶ

          • 都度課金(全ての支払い方法で可能)
          • 定期課金(クレジットカード/Paidy で可能)
          • リカーリング課金(クレジットカード/銀行振込/コンビニ決済/Paidy で可能)

            ※各課金方式の詳細、選び方についてはこちら

          4. 各種フォームの設置

          実際に消費者が利用するフォームを作成、設置します。
          詳細は、各決済フォームのセットアップページをご覧ください。

          それぞれのセットアップにはSDKが利用できます。

          5. 決済フォームを公開する

          公開前には、必ずテストモードでフォームが意図した通りに動作しているかを確認してください。(テストモードのアプリトークンを作成することでテスト決済が可能です)
          ※クレジット決済の場合は管理画面の「テスト課金」にあるカード番号でテストができます。 

          行われた決済は管理画面で確認・操作が可能です。

          管理画面の使い方はこちらをご覧ください。

          8.4 利用可能な決済手段

          本サービスは、現段階ではオンラインでの決済にのみ対応しています。
          各銘柄のロゴを利用したい場合は、ロゴの下にあるボタンをクリックしてダウンロードしてください。

          クレジットカード

          消費者が決済フォームにカード番号などの必要情報を入力し、決済します。

          非対面の取引※に限り、利用可能です。
          ※磁気テープやICチップのスキャンを行わない

          利用できるのは、国際ブランド(VISA / Mastercard / JCB  / American Express / Diners Club / DISCOVER)のマークが券面に記載されたクレジットカードです。

          Paidy

          購入代金を自由な形で翌月にまとめて支払うことができるサービスです。
          決済フォームでメールアドレスと電話番号を入力し、SMS認証を行って決済します。

          ブランドガイドライン

          銀行振込

          決済ごとに専用の口座が消費者へ発行され、振込確認を自動で行います。
          発行する口座は「GMOあおぞらネット銀行」のものです。

          オンラインモバイル

          消費者が決済フォームからモバイルペイメントアプリで認証することで、オンラインでの決済を行います。
          詳細はこちらを参照ください。

          8.5 管理画面の使い方

          管理画面ガイド

          本ガイドでは、当社が提供している管理画面の構成や利用方法を説明しています。

          下記の画像付き資料をご確認ください。

          管理画面ガイド(PDFファイル)

          もっとも簡単な利用方法

          本サービスで最も簡単なご利用方法は「リンクフォーム決済」です。

          決済金額を加盟店にて設定し、作成したフォームのURLを消費者に提供する単純な決済方法です。

          下記の画像付き資料をご確認ください。

          リンクフォーム決済の設定方法(PDFファイル)

          8.6 決済フォームの種類

          決済フォームとは、決済や申込のために消費者が情報を入力する画面のことです。
          本サービスでは3種のフォームを選択可能です。加盟店さまの利用イメージに沿ったフォームを選択してください。

          フォームのセキュリティ

          本サービスの全てのフォームは、加盟店さまのwebサイトにカード情報が通過することがなく、保存することも処理することもありません。
          これにより、カード情報の漏洩リスクを最小限に抑えながら、柔軟な課金方式で商用サイトを運用できます。

          決済フォームの選択基準

          フォーム種類対応している決済手段設置方法このような方向け
          ウィジェット
          詳細
          全て十数行のごく短い(※)タグプログラミング可能でシステム連携する
          多品目を合算して決済する
          インラインフォーム
          詳細
          クレジットのみ40行程度の短い(※)タグかjavascriptのコード
          リンクフォーム
          詳細
          全て短縮URLとそのQRコードをメールやメッセンジャーで送信
          webサイトには<a>タグで設置
          システム連携しない
          プログラミング不可
          単品販売のみ
          ※…指定するパラメータのフィールド数次第で増減

          消費者の支払いフロー

          当社決済フォームを利用した場合の、決済手段ごとの支払いフローは、下記の画像付き資料を参照してください。

          消費者の支払いフロー(PDFファイル)

          ジェネレータでタグをかんたん出力

          プログラミングの難しい加盟店さま向けに、指定されたパラメータでの各種決済フォーム用のタグを出力するジェネレータを管理画面内に用意しています。 ※利用方法はこちら

          もちろん、各種パラメータを変数として、動的にタグ出力するプログラムを作成いただくことも問題ありません。
          そのためのSDKもこちらに用意しています。

          8.7 トークンとは

          トークンとは、カード情報(カード番号と有効期限)を復号できないよう、ランダムな文字列に暗号化したもののことです。

          本サービスの決済フォームでは、消費者が入力したカード情報を自動的にトークンへ置き換える処理を行います。
          これを「トークン化」といいます。

          トークンには複数の種類があります。
          どの種類のトークンを作成するか、トークンを用いてどのような処理を行うかは、加盟店さまが自由に指定できます。
          行える処理については、ページ下部「チェックアウトタイプとトークンタイプの見取り図」を参照してください。

          トークンの種別

          当社サービスで発行できるトークンの種別(token-type)には以下の3つがあります。

          one_time(ワンタイムトークン)

          ワンタイムトークンは1回だけ課金を作ることができ、有効期間は作成から5分間です。
          大量の課金を処理するために、並行して複数のワンタイムトークンを作ることができますが、一定期間内に同一のカードで課金できる回数には制限があります。

          subscription(定期課金トークン)

          一定のスケジュールで消費者に請求をする必要がある場合、定期課金トークンの利用を推奨します。
          このトークンは定期課金を作成することができ、定期課金では課金の間隔、初回金額、定期課金金額、開始日を指定することができます。
          このトークンの有効期間は作成から5分間です。定期課金はキャンセルされるまで期限なしで継続されますが、課金回数を指定した定期課金の作成も可能です。

          ※当システムでは同一カード番号で定期課金トークンを作成できるのは1つまでのため、5分以内に同一カード番号を入力して送信するとエラーが発生します。
          定期課金トークンに対して課金されると再度作成が可能になります。

          recurring(リカーリングトークン)

          一度決済したクレジットカードで、任意のタイミングで再び決済を行いたい場合はリカーリングトークンの作成を推奨します。
          トークンが作成されると、その個人情報は UnivaPay のプラットフォーム上に安全に保管されます。

          初回の処理で課金を行わずカード情報の登録のみ行う運用の場合は、セキュリティコード認証を行うように実装する必要があります。
          上記運用でセキュリティコード認証を行わない場合、作成後5分以内にトークンが使用されないとCVVは自動的に期限切れになり、それ以降の課金は失敗します。
          ※詳細はこちら

          トークン作成時のチェックアウト種別

          トークン作成時のチェックアウト(checkout-type)の種類は、以下2通りです。
          表内で動作を説明します。

          checkout-type説明
          tokenカード情報をトークン化するが、その際に課金を伴わない
          paymentカード情報をトークン化するが、同時に課金も行う

          トークン種別とチェックアウト種別の見取り図

          checkout-type=
          token
          checkout-type=
          payment
          token-type=
          one_time
          非推奨
          ※有効期限が5分だけで存在意義が薄い
          都度課金時に推奨
          token-type=
          subscription
          いつでも自動課金を開始できる
          「定期課金トークン」を作成
          (要保存)

          「定期課金」の作成リクエストがあるまで課金しない
          指定されたサイクルと金額で、
          停止申請があるまで自動で課金される
          「定期課金」データを作成
          (要保存)

          指定次第で初回分も課金

          「定期課金トークン」も作成
          token-type=
          recurring
          いつでも課金できる状態の
          「リカーリングトークン」を作成
          (要保存)
          初回の課金を行い、かつ、
          いつでも課金できる状態の
          「リカーリングトークン」を作成
          (要保存)

          8.8 処理と課金の種類

          「処理」の種類

          本サービスには、4つの処理があります。
          決済フォームのタグやコードを設置したり、書き出す際には以下を参照してください。

          課金の種類特徴利用可能な決済手段
          オーソリ(仮売上)指定した金額の決済が可能なクレジットカードに対し、与信枠を仮押さえする

          この仮押さえは、各カードの発行会社が定める期間中(国内発行は60日間、海外発行は30日間が典型)のみ有効です。

          本サービスでは、課金の作成をリクエストする際にcaptureフィールドにfalseの値を指定することで、オーソリ処理が行えます。

          一般的な物販では、注文時は消費者によってオーソリの手続きが行われるようにし、発送時に加盟店側でキャプチャするという運用が主流です。
          しかし、在庫切れでメーカー取り寄せとなった場合など、発送手続きまでに時間がかかる場合は、一旦のキャンセル処理の実施が推奨されます。
          その理由は、消費者の与信枠を長期間圧迫することを避けるためです。
          クレジットカード
          Paidy
          セキュリティコード認証(CVV認証)入力されたクレジットカードが、決済時点で有効かどうかを確認する

          カード情報のトークン化を行う際に消費者へセキュリティコード認証を要求し、1円のオーソリを行うことで、カードの有効性チェックをしています。

          この処理によって、初回の決済で課金を行わずにカード情報をトークン化し、後日課金を行えます。
          クレジットカード
          キャプチャ事前に作成したトランザクショントークンに対し、売上確定処理を行う

          オーソリ済みの課金データに対してキャプチャを行うと、売上の処理が行われ、仮押さえされていた与信枠が売上確定の状態で消し込まれます。
          クレジットカード
          Paidy
          返金過去にキャプチャした課金データに対し、返金処理を行う

          返金を実行すると、既にカード会社からの引き落としが完了した後でも、各カード会社の引き落とし日に相殺される、もしくは振込が行われるといった処理がされます
          返金は管理画面からの操作、またはAPIへのリクエスト送信で行います。
          全て

          「課金」の種類

          本サービスには3つの課金種類があります。
          決済フォームのタグやコードを設置したり、書き出す際には以下を参照してください。

          課金の種類特徴利用可能な決済手段
          都度課金一度きりの決済を行う最も基本的な課金方式です。
          クレジットカードの場合のみ
          ・オーソリ(仮売上)
          ・キャプチャ(売上確定処理)
          が指定できます。
          全て
          定期課金指定したサイクルで定期的に課金します。
          停止・再開は管理画面の「定期課金」メニューまたはAPIで可能。
          クレジットカード
          Paidy
          リカーリング課金フォームで入力されたカード情報を
          「リカーリングタイプ」のトークンとして保存し、
          課金時に送信する必要があります。
          任意の周期と金額で課金することができます。
          クレジットカード
          銀行振込
          コンビニ決済
          Paidy

          8.9 処理結果の通知と取得

          本サービスとシステム連携して、注文や消費者のデータベースへ、支払い状態を反映する必要がある場合は、ウェブフックを受信してデータベースへの書き込みを行うプログラムを作成・設置してください。

          ウェブフックの実行はベストエフォートであるため、対象のサーバや回線の状況によっては受信に失敗することがあります。

          したがって、処理結果の判定をウェブフックで行うことは問題ありませんが、本来、処理結果を受信しているべきだが未受信ステータスの注文情報を、加盟店さまのデータベース上で検知した場合には、本サービスのAPIへ能動的に

          • GET(条件を指定し、単数の処理情報取得)
          • LIST(条件を指定し、複数の処理情報取得)

          へのリクエストを行い、補完することを推奨します。

          コールバックを結果判定に用いる場合

          ウィジェットまたはインラインフォームを利用する場合、ウェブフックだけでなく、処理の完了後に行われるJavaScriptのコールバックも結果判定に利用できます。
          ただし、

          • 処理中の消費者に回線の不調や断絶が起きた場合
          • 処理中に加盟店さまのサーバや回線の不調やダウンがあった場合

          には、受け取れない場合がありますので、ウェブフックと同様にGET/LISTによる補完をしてください。

          また、以下についても注意してください。

          課金の種類処理結果の通知・取得方法
          定期課金subscription本サービス側で自動実行するため、結果の取得方法がウェブフックかGET/LISTリクエストに限定される
          リカーリング
          recrring
          APIへのリクエストで行われるため、結果の取得方法がレスポンス、ウェブフック、GET/LISTリクエストに限定される

          【重要】アクワイアラやセンター毎に異なる挙動

          一部のアクワイアラ(カード会社)やセンター(カード会社と紐づくオンライン処理用のセンター)では、リクエストが行われた場合、処理がラグをもって段階的に行われることがあります。
          特に、海外クレジットカード会社に接続している場合は、一般的に数分ほどのラグをもって処理が行われます。

          当システムの仕様

          当社からアクワイアラへリクエストを行った後、GETリクエストを定期的に行うことで結果を取得し、ステータスを反映する仕様です。
          そのため、capturerefundcancelのリクエストを行った場合、ステータスが段階的に変化します。
          返却されるステータスは、リクエストによって異なります。

          リクエスト段階的に返却されるステータス
          capturependingauthorized※、successful/ failed / error
          refund / cancelpendingsuccessful/ failed / error

          ※アクワイアラやセンターのメンテナンスや障害、通信状況などによってauthorizedの状態が続くことがあります。

          また、決済フォーム(リンクフォーム / ウィジェット / インラインフォーム)より消費者が課金を行う場合、当社からアクワイアラへ課金リクエストが成功した時点で完了画面へ遷移する仕様です。

          海外クレジットカード会社に接続している加盟店さまの実装方法

          課金のGETリクエストやコールバックで課金が作成されたことを確認し、authorizedの確認をもって次の処理を実行する等、数分ほどのラグを考慮した実装を推奨します。
          サービスや商品の提供は、継続的な課金のGETリクエスト(ポーリング機能の活用等)によってステータスが successful に更新されたことを必ず確認してから行ってください。

          8.10 【重要】リカーリング時の注意点

          トークンタイプにrecurringを指定する場合は、繰り返し課金を目的としたトークンの保存を行うことについて、消費者に対して必ず事前の同意承諾を得るか、加盟店サイト内で十分な告知※を行ってください。

          万が一、同意の取得や告知が十分でなかった場合は、消費者から加盟店さまに対して、支払いに対する異議や抗弁の申し立てがされる場合があります。

          また、そのような事態が連続した場合は、カード会社から加盟店さまに対して加盟契約解除を言い渡されることがありますが、当社ではその責任を一切負いかねます。予めご了承ください。

          「十分な告知」とは

          告知内容例

          クレジットカード情報はPCI-DSSに準拠したシステムでトークン化され、当社ではトークンを保存します。トークンの利用目的は、消費者の再購入やサービス利用状況に応じて再課金することです。課金は必ず消費者の事前同意を得た状態で行われ、無断で行われることはありません。なお、保存したトークンは本サービスでのみ利用可能なもので、万一漏洩することがあっても他サービスの課金に使われることはありません。

          ウィジェットボタンの直下など、消費者が確認しやすい場所にに注意書きを設置してください。
          なお、インラインフォームをご利用の場合は、インラインフォームが含まれる前のページか、インラインフォームの付近に、注意書きを設置してください。

          8.11 制限機能

          本サービスにはいくつかの制限があります。

          IPアドレス制限(連続失敗回数、IP拒否)

          同一のグローバルIPアドレスから決済を連続で失敗した場合、そのIPアドレスに対して12時間の制限をかけます。
          1つの加盟店で制限されたIPアドレスは他加盟店でも制限され、制限のかかったIPアドレスから管理画面にアクセスすると、
          管理画面>店舗>リンクフォーム設定上にエラーが表示されます。

          • 制限の対象となる決済
            モード:本番モード
            決済手段:すべて
            決済経路:課金フォームからの決済(リカーリング課金含む)
                 ※CSV課金は対象外
          • 制限がかかった場合の挙動
            エラーになり履歴に残らない
            エラーコード:「SERVICE_RESTRICTED」
            HTTPレスポンスコード:「429」
            決済完了画面:メッセージ「失敗回数が上限に達したため、一定時間サービスを利用できません。時間をおいて再度お試しください。」と表示

          返金制限

          1か月間の課金額より返金額が上回る場合は返金不可の制限をかけます。

          海外カード拒否

          海外で発行されたカードでの決済を拒否します。
          ※管理画面から制限の有無が設定可能です。

          短時間での大量のリクエストの制限

          短時間で大量のリクエストをした場合に制限をかけます。
          詳細はAPI制限のページを確認してください。

          8.12 用語集

          このページでは、本ドキュメントで使用している用語の意味を説明します。
          ※あくまで本ドキュメント内における用語の意味です。

          あ行

          用語説明
          アクワイアラ加盟店を増やすことを目的としたカード会社のこと。
          国際ブランドであるVisaやMasterCardなどからライセンスを取得し、加盟店開拓・審査・管理等を行う。
          後払い商品を受け取った後、指定された期日までに代金を支払う決済手段のこと。
          アプリトークン課金などのリクエストを行った店舗を判別するためのキーのこと。
          全ての決済で必須。
          イシュアカード利用者を増やすことを目的としたカード会社のこと。
          消費者に対してカードを発行し、引き落とし情報や利用状況の管理・利用明細の発行・請求等を行う。
          一時停止 / 永久停止定期課金を停止すること。
          停止後に再開可能な一時停止と、再開不可な永久停止の2つ種類がある。
          インターフェース異なる機器やシステム、ソフトウェア間で情報のやり取りが行われる際、その間をつなぐ装置や機能のこと。
          インラインフォーム決済フォーム(消費者がカード情報を入力するためのインターフェイス)のこと。
          インラインフレームに本サービスの決済フォームのリソースを表示するタイプ。
          ウィジェット決済フォーム(消費者がカード情報を入力するためのインターフェイス)のこと。
          ポップアップウインドウとして表示されるタイプ。
          ウェブフック課金などイベントが実行された際、外部サービスにHTTP で通知する仕組みのこと。
          オーソリ指定した金額の決済が可能なクレジットカードに対し、与信枠を仮押さえすること。
          仮売上と同義。
          詳細はこちら

          か行

          用語説明
          回数指定 / 回数無制限定期課金の種類の名称で、課金が行われる全体の回数を指定されたタイプ / 回数を指定せず、停止するまで課金を継続するタイプのこと。
          課金商品やサービスの購入(利用)料金を課すること。
          加盟店本サービスの利用中の法人 / 個人のこと。
          仮売上指定した金額の決済が可能なクレジットカードに対し、与信枠を仮押さえすること。
          オーソリと同義。
          詳細はこちら
          カードブランド独自の決済システムネットワークをクレジットカード発行会社へ貸し出している会社のこと。
          国際ブランドの中で Visa、Mastercard、JCB、American Express、Diners Club が主流で「世界5大ブランド」と呼ばれている。
          為替レート国の通貨を他国の通貨に交換する場合の取引価格および交換比率のこと。
          外国為替相場と同義。
          キャプチャオーソリ(仮売上)処理を行った課金情報に対して、売上確定処理(実売上)を行うこと。
          キャンセルステータスが「処理待ち」もしくは「オーソライズ済」の課金情報に対して行う、課金を取りやめる処理のこと。
          銀行振込指定された銀行口座にお金を振り込む支払方法のこと。
          クエリパラメータURLの末尾( ? 以降)に付与されているパラメータのこと。
          主に抽出する条件を絞り込むことを目的として追加する。
          ゲートウェイ店舗およびオンライン上で取引のカード決済を可能にする技術プラットフォームのこと。
          接続先と同義。
          決済お金の支払うことで債権・債務を解消すること。
          決済手数料 / 手数料率消費者がキャッシュレス決済で支払い時に、加盟店さまに発生する費用と、決済金額に対するその割合のこと。
          コールバックウィジェットタグ内のソースコードに関数を定義しておくことで、各イベントが発生した時にその内容を含めた通知を受け取れる仕組みのこと。

          さ行

          用語説明
          システム連携先当システムと加盟店さまのシステムを連携して、加盟店さまのユーザーに対して提供している事業者さまのこと。
          消費者加盟店さまの商品やサービスの購入者(利用者)のこと。
          商品加盟店さまが販売している商品の名称や金額・課金方式を登録することができる、当システムの機能名。
          シークレット機密性の高い情報や特権システムを含むサービスおよびITリソースにアクセスするために使用する情報のこと。
          当システムでえは、アプリトークン発行時にシークレットも同時に発行される。
          ステータス情報の処理状態のこと。
          セキュリティコードクレジットカードの不正利用を防ぐために、カードの裏面に印字されている3桁(または4桁)の数字のこと。
          セキュリティコード認証インターネットなどでクレジットカードを利用するときに、セキュリティコードを入力すること。 
          接続先店舗およびオンライン上で取引のカード決済を可能にする技術プラットフォームのこと。
          ゲートウェイと同義。

          た行

          用語説明
          チェックアウト消費者が購入を完全に確定し、支払いを完了させること。
          チャージバックカード利用者が不正利用などの理由により利用代金の支払に同意しないために、クレジットカード会社が加盟店さまに対して、その代金の支払いを取り消しまたは返金を要求すること。
          通知メール加盟店さまと消費者に対して、処理結果に応じて各種メールが送信される通知機能のこと。
          都度課金一度きりの決済を行う最も基本的な課金方式のこと。
          定期課金定期的かつ自動的に課金する、当システムの機能のこと。
          店舗1つの契約に対して作成された店子(たなこ)のこと。
          1加盟店ごとに1店舗存在している。
          トランザクションオーソリ,キャプチャ,キャンセル等、取引を行うために必要な「処理」の単位のこと。
          トランザクショントークン / トークンカード情報(カード番号と有効期限)を復号できない別の文字列に置き換えた文字列のこと。
          トークン化によって、情報漏えいリスクを軽減可能。

          な行

          用語説明
          入金商品やサービスの購入(利用)料金を、銀行やコンビニ等から指定口座へ振り込むこと。

          は行

          用語説明
          パラメータシステムの挙動に影響を与えるデータ(変数)のこと。
          任意のパラメータを指定することで、処理を変化させることができる。
          フィールド名項目名のこと。
          例)amount:金額
          プロバイダクレジットカードをはじめとする決済手段のオンラインサービスを提供する企業のこと。
          分割払い商品やサービスの購入(利用)料金を、複数回に分けて支払う方法のこと。
          分割可能な回数は、カード会社と消費者の契約によって異なる。
          冪等ある操作を何度行っても、同じ結果になるという概念のこと。
          当社では、冪等なリクエストを行うことで予期しない理由で1つのリクエストが複数回実行されないようにし、重複決済を防ぐことが可能。
          詳細はこちら
          返金消費者にお金を返す処理のこと。
          ポーリング対象のトランザクションに対してステータスの変化を検出するまで GET リクエストを行い、トランザクションのステータスが変化したタイミングで通知を受け取れる実装方法のこと。
          詳細はこちら

          ま行

          用語説明
          メタデータ決済情報やトークン情報に任意で付与できるデータのこと。
          主に、本サービスと消費者や消費者による注文データ等を関連付けるために使用される。

          や行

          用語説明
          与信枠カードの利用可能枠のこと。
          利用限度額と同義。

          ら行

          用語説明
          リカーリングトークン繰り返し課金に利用するために、消費者のクレジットカード情報をトークン化(復号できない別の文字列に置き換え)したもの。
          リカーリング課金リカーリングトークンに対して課金を行うこと。
          詳細はこちら
          リトライ定期課金の支払い失敗後、再度課金を行うこと。 
          詳細はこちら
          リボ払い「リボルビング払い」の略で、一定の金額を毎月返済するクレジットカードの支払方法のこと。
          リンクフォーム決済フォーム(消費者がカード情報を入力するためのインターフェイス)のこと。
          APIに対してHTTP GETメソッドで決済の詳細を送信することで、決済フォームのリソースを生成し、そこ消費者を遷移させるタイプ。

          英数字・記号

          用語説明
          CSV課金CSVファイルをアップロードすることで、既存の顧客に再び課金することができる機能のこと。
          詳細はこちら
          EMV 3-Dセキュアカード利用者の決済情報などを基に、カード会社が高リスクと判断する取引にのみワンタイムパスワードなどの追加認証を実施するサービスのこと。
          ID「identification(アイデンティフィケーション)」の略で、情報を識別・把握するためのユニークな文字列のこと。
          ISO-4217各種の通貨を表す国際規格(通貨コード)のこと。
          ISO-8601日付と時刻の表記に関する国際規格のこと。
          PCI-DSS「Payment Card Industry Data Security Standard」の略で、カード会員情報の保護を目的に定められた、
          情報セキュリティの国際統一基準のこと。
          QRコード決済 / バーコード決済QRコードやバーコードを読み取って行う決済方法のこと。

          9. 2024

          12月 2, 2024

          Frontend

          11.13.2

          TWEAK 商品コードの数を指定するパラメータdata-product-code-quantitiesを追加しました(ウィジェット / インラインフォーム)

          FIX カスタマーIDを指定するパラメータunivapayCustomerIdを指定の不具合を修正しました(リンクフォーム)

          11月 18, 2024

          Frontend

          11.12.1

          FIX Paidy決済の場合、住所を入力必須項目として決済フォームに表示されるように修正しました(ウィジェット)

          10月 9, 2024

          Frontend/Backend

          11.10.3

          NEW 毎月の精算で発生した請求金額を登録したカードで決済する、クレジットカード登録機能を追加しました

          10月 7, 2024

          Frontend

          11.10.2

          NEW リンクフォームで設定可能なパラメータを2種類追加しました
          ・nameKana
          ・phoneNumberCountryCode

          9月 9, 2024

          Frontend

          11.9.4

          TWEAK 住所の都道府県の入力をプルダウンで選択するようになりました(ウィジェット / リンクフォーム)

          8月 19, 2024

          Frontend

          11.7.4

          TWEAK 電話番号の入力フォームで国番号の表示を追加しました(リンクフォーム)

          7月 30, 2024

          Frontend/Backend

          11.7.1

          NEW ウィジェット / インラインフォーム / リンクフォームで設定可能なパラメータを2種類追加しました
          ・data-hide-recurring-checkbox / hideRecurringCheckbox
          ・data-hide-privacy-link / hidePrivacyLink

          TWEAK 電話番号の入力フォームで国番号の表示を追加しました(ウィジェット)

          7月 17, 2024

          Frontend/Backend

          11.6.3

          UPDATE イシュアトークン取得APIリクエストのURL末尾が/issuuer_tokenに変更になりました
          ※既存のURL(/issuerToken)でもリクエスト可能です

          UPDATE 定期課金のリトライ回数がリセットされる仕様に変更になりました

          NEW 管理画面>店舗>決済フォーム>ウィジェットの一般設定で、韓国語 / タイ語 / ロシア語を追加しました

          6月 10, 2024

          Frontend/Backend

          11.5.0

          UPDATE ウェブフックの通知が失敗した場合、返却されたエラーコードによって通知のリトライが可能になりました

          5月 8, 2024

          Frontend/Backend

          11.3.2

          NEW リカーリングトークンの詳細情報から、登録済のカード情報の有効期限および名義の更新が可能になりました

          4月 16, 2024

          Frontend/Backend

          11.2.4

          UPDATE カード情報変更後に作成された新規リカーリングトークンと変更前の古いリカーリングトークンを、管理画面>リカーリングトークンの検索欄・詳細画面から確認可能になりました

          NEW コンビニ決済の入金期限切れの通知メールテンプレートを追加しました

          4月 11, 2024

          Frontend

          11.2.3

          UPDATE 指定した秒数が経過するとウィジェットが閉じてタイムアウトのエラー画面を表示させるパラメータ”data-timeout”を追加しました

          4月 2, 2024

          Frontend/Backend

          11.1.3

          NEW 次回課金実行日(リトライ日含む)に一時停止・永久停止の処理を設定できる機能を追加しました

          UPDATE CSV課金>該当のCSV課金の「レポート」の項目内に、実行された決済を確認できる機能(「>決済を確認」のリンク)を追加しました

          3月 26, 2024

          Frontend/backend

          11.1.2

          NEW 支払い情報の確認・変更画面を追加しました

          1月 10, 2024

          Frontend

          10.14.4

          UPDATE リンクフォーム、商品、URLジェネレータ(ウィジェット/インラインフォーム/リンクフォーム)に「月末に固定」を指定するトグルスイッチを追加しました

          10. API連携、SDKについて

          APIとは、様々な決済手段を提供する RESTfulな HTTPS インターフェースです。

          API を呼び出す為に、直接 HTTP リクエストを実行することも可能ですが、いくつかの開発言語向けにライブラリを提供しています。これらは様々なベストプラクティスや、型情報を提供するので、APIの統合をより簡単に行うことができます。これらの使用例は、本ドキュメントのリソースに対する呼び出し例として記載されています。

          API連携

          画面遷移をシンプルにする等の理由で、加盟店サイト内に独自の決済フォームを設けたい場合は、API連携を行ってください。

          クレジットカード情報の送信を伴う場合

          クレジットカード情報を加盟店サイト内に入力させ、APIに送信する場合は、カード情報の「通過」にあたるため、加盟店サイトがPCI DSSに準拠することが必要です。
          PCI DSSに準拠していない場合、カード情報は当社準備の決済フォームを利用する構築をしてください。
          PCI DSSに準拠している場合、トークン化から課金、返金までの全てのリクエストを本サービスのAPIに送信することが可能です。

          APIの呼び出しについて

          APIはシークレットトークンなどの機密情報を含むためCORSでの実行を許可していません。
          APIを呼び出す場合はサーバーアプリケーションから呼び出すよう実装してください。

          SDK

          ここでは、API連携開発をシンプルにする「SDK」について説明します。

          APIとの連携開発を行う際は、本ドキュメントを参照して設計・開発してください。
          開発言語が対応しているようであれば、SDK(Software Development Kit)の利用を推奨します。

          SDKは、APIを利用するためのライブラリです。GitHub上で公開しています。
          利用フローについては、Githubの「Readme」を参照してください。

          SDK利用のメリット

          • APIと通信するためのコードを記述する必要がない
          • セキュリティ(トークンの有効期限や利用回数制限のアルゴリズム)の取り扱いについても考慮する必要がない

          SDKの機能やツール例

          IDE、オートコンプリート、コンパイルエラー etc…

          GitHubについて

          GitHubは、ソフトウェア開発プロジェクトのためのソースコード管理サービスです。
          GitHubの公式言語は英語で、アカウント設定画面から言語を日本語に指定することはできません。以降、最低限必要なアクションを日本語で解説します。

          技術的な不明点や、Github内ドキュメントへのフィードバックがある場合

          SDKの組込において技術的な質問がある場合や、ドキュメントへのフィードバックがある場合は、該当のリポジトリ※から「Issues」を選択し、当社エンジニアに質問・要望を日本語または英語で送信してください。

          リポジトリとは:
          「格納庫」を意味する言葉で、Githubでは組織またはプロジェクトの階層下に設置されるサブプロジェクトのような存在です。例:https://github.com/univapay/univapay-java-sdk
          この場合は「univapay-java-sdk」がリポジトリです。

          サポートしている開発言語

          11. 利用ガイド

          本サービスを利用するためのガイドです。

          11.1 はじめに(利用方法)

          本サービスを利用開始するためのガイドです。
          利用開始前に、必ずご通読ください。

          11.1.1 免責事項

          本ドキュメントについて

          目的

          本ドキュメントは、「国際ブランドが付帯したカードの決済」「PayPayオンライン決済」「Paidy決済」「銀行振込決済」「コンビニ決済」「Alipay Online決済」「Alipay + Online決済」「Wechat Online決済」を行うために、univapay.comドメインで展開する決済システム(以降「本サービス」という)の利用について記述したものす。

          本ドキュメントは、加盟店さまやシステム連携先さまに、本サービスを利用開始するまでの設計・開発を可能とするためのものです。

          本ドキュメントは、予告なく変更されることがあります。

          使用言語

          本ドキュメントは、日本語を使用して作成しています。
          他言語で閲覧したい場合は、ブラウザの翻訳機能を利用してください。

          問い合わせは、日本語・英語にて受け付けています。

          パラメータの表記ルール

          本ドキュメントでは、各プログラミング言語の仕様に準じ、以下の通り表記しています。

          設置(記述)方法フィールド名のケースフィールド名の記述例値のケース値の記述例
          HTMLkebab-case
          (ケバブケース)
          すべて小文字、ハイフン区切りで記述
          data-foo-bar-baz
          ※始めにdataが必要
          snake_case
          (スネークケース)
          すべて小文字、アンダースコア区切りで記述
          foo_bar
          JavaScriptlowerCamelCase
          (ローワーキャメルケース)
          1語目のみ小文字始まり、2語目以降は頭文字のみ大文字
          fooBarBaz

          メタ構文変数

          本ドキュメントでは、上記表のように「メタ構文変数」を、foo bar baz qux quux … と表記します。これらを「実際には様々変化し得る部分」と解釈してください。

          クレジットカード情報の送信を伴う処理について

          消費者のクレジットカード情報を加盟店サイト内に入力(通過か保持)させ、本サービスの APIに送信する場合は、カード情報の「通過」にあたるため、加盟店サイトがPCI DSSに準拠することが必要です。

          システムの定期アップデートについて

          本サービスは利便性や品質向上のため、隔週月曜日(※)の15時より小規模なシステムアップデートのリリースを行っています。

          大幅な変更を伴うリリースはシステム連携先さまや加盟店さまへ事前通知しますが、軽微な更新は通知なく行いますので、ご承知おきください。

          ※定期リリース日時は改修内容よって、多少前後することがあります

          動作確認しているブラウザ

          以下以上のバージョンで、本サービスの動作を確認しています。

          ブラウザバージョン
          Google Chrome80
          Microsoft Edge80
          Mozilla Firefox72
          Apple Safari13.1
          Apple Safari(iOS)13.4
          Opera67

          11.1.2 利用方法

          本サービスには、大きく分けて2通りの利用方法があります。
          いずれの方法でも初期設定が必要です。

          ①本サービスと商用サイトとを連携せずに利用する

          本サービスの管理画面を用いて、決済金額を加盟店さまにて設定し、作成したフォームのURLを消費者に提供することが可能です。
          上記の運用方法の場合は、こちらをご覧ください。

          ②本サービスと商用サイトとを連携する

          本サービスは、プログラムを記述することでオンライン上にある加盟店さまの商用サイトと連携することが可能です。
          予め、システム連携先さまによって、簡易な設定のみで利用可能となっている場合もあります。

          具体的には、以下のよう「初回決済(トークン化)のリクエスト方法」と「決済結果の取得方法」を設計・開発することを本サービスでは「連携」と定義しています。

          初回決済(またはトークン化)のリクエスト方法

          の3通りのインターフェイスを用意しています。詳しくはリンク先を参照してください。

          PCI-DSSに準拠している加盟店さまの場合、APIに対して直接カード情報を送信して決済することも可能です。

          決済結果の取得方法

          決済の完了後には、ウェブフックやAPIへのリクエストで結果を取得できます。

          ただし、ウェブフックによる結果取得はあくまで簡易的なもので、到達を保証するものではありません。エラーの種類によってはリトライを実行します。詳細はこちらをご覧下さい。
          何かしらの原因で取得できなかった場合は、APIにリクエストすることで能動的に取得することを推奨します。

          11.1.3 初期設定

          本サービスを利用するためには、いくつかの設定を管理画面で行う必要があります。
          このページでは、利用開始までの大まかな流れを説明します。

          1. アプリトークンの作成

          アプリトークンとは、どの店舗で決済を行うかの判別のためのキーとして機能します。
          全ての決済でアプリトークンは必須です。

          管理画面>アプリトークンの「新規作成」を押下し「店舗」のアプリトークンを作成してください。
          利用方法によってアプリトークン作成時の行動および次に読むページが異なるため、以下を参照ください。

          利用方法アプリトークン作成時の行動次に読むべきページ
          システム連携せずに利用
          (リンクフォームを利用)
          シークレットを控えておく必要はありません。利用ガイド『管理画面の使い方』を参照ください。
          このページを以降読む必要はありません。
          システム連携して利用
          (ウィジェット、インラインフォームを利用)
          シークレットを控えておく必要はありません。
          利用するWEBサイトのドメインを登録する必要があります。
          このページを読み進めてください。
          システム連携して利用
          (APIでリクエスト)
          シークレットを控えておく必要があります。このページを読み進めてください。

          2. ウェブフックの作成(任意)

          ウェブフックを作成すると、本サービスでの処理結果を、加盟店さまが指定したURLにHTTP POSTリクエストで通知するようになります。
          消費者の遷移とは近いタイミングで実行しますが、必ずしも同期するとは限りません。

          加盟店さま側のシステム(カートや受注管理のシステム)と連携したい場合は作成してください。

          ただし、ウェブフックはあくまでも即時性を担保するための簡易的な仕組みで、到達を保証するものではないため、決済結果の判定をウェブフックのみに依存することは非推奨です。
          精度の高い判定を求める場合は、APIへ決済結果取得をリクエストする仕組みを設計、実装してください。

          画面遷移のコントロールがしたい場合は、ウィジェットやインラインフォームからのコールバック、リンクフォームからのリダイレクト設定でも可能です。

          ウェブフックを受信する仕組みの作成には、SDKを利用できます。

          メールや管理画面で処理結果を確認するので十分なら、この設定は必要ありません。

          ※詳細はこちら

          3. 決済フォームと課金方式の種類を選ぶ

          アプリトークンとウェブフックを作成した後は、サイト構成やサービス内容に沿った、当社の決済フォームと課金方式を選びます。

          ①決済フォームの種類を選ぶ

          • ウィジェット(全ての支払い方法が利用可能)
          • インラインフォーム(クレジットカードのみ利用可能)
          • リンクフォーム(全ての支払い方法が利用可能)

            ※各決済フォームの詳細、選び方についてはこちら

          ②課金方式を選ぶ

          • 都度課金(全ての支払い方法で可能)
          • 定期課金(クレジットカード/Paidy で可能)
          • リカーリング課金(クレジットカード/銀行振込/コンビニ決済/Paidy で可能)

            ※各課金方式の詳細、選び方についてはこちら

          4. 各種フォームの設置

          実際に消費者が利用するフォームを作成、設置します。
          詳細は、各決済フォームのセットアップページをご覧ください。

          それぞれのセットアップにはSDKが利用できます。

          5. 決済フォームを公開する

          公開前には、必ずテストモードでフォームが意図した通りに動作しているかを確認してください。(テストモードのアプリトークンを作成することでテスト決済が可能です)
          ※クレジット決済の場合は管理画面の「テスト課金」にあるカード番号でテストができます。 

          行われた決済は管理画面で確認・操作が可能です。

          管理画面の使い方はこちらをご覧ください。

          11.1.4 利用可能な決済手段

          本サービスは、現段階ではオンラインでの決済にのみ対応しています。
          各銘柄のロゴを利用したい場合は、ロゴの下にあるボタンをクリックしてダウンロードしてください。

          クレジットカード

          消費者が決済フォームにカード番号などの必要情報を入力し、決済します。

          非対面の取引※に限り、利用可能です。
          ※磁気テープやICチップのスキャンを行わない

          利用できるのは、国際ブランド(VISA / Mastercard / JCB  / American Express / Diners Club / DISCOVER)のマークが券面に記載されたクレジットカードです。

          Paidy

          購入代金を自由な形で翌月にまとめて支払うことができるサービスです。
          決済フォームでメールアドレスと電話番号を入力し、SMS認証を行って決済します。

          ブランドガイドライン

          銀行振込

          決済ごとに専用の口座が消費者へ発行され、振込確認を自動で行います。
          発行する口座は「GMOあおぞらネット銀行」のものです。

          オンラインモバイル

          消費者が決済フォームからモバイルペイメントアプリで認証することで、オンラインでの決済を行います。
          詳細はこちらを参照ください。

          11.1.5 管理画面の使い方

          管理画面ガイド

          本ガイドでは、当社が提供している管理画面の構成や利用方法を説明しています。

          下記の画像付き資料をご確認ください。

          管理画面ガイド(PDFファイル)

          もっとも簡単な利用方法

          本サービスで最も簡単なご利用方法は「リンクフォーム決済」です。

          決済金額を加盟店にて設定し、作成したフォームのURLを消費者に提供する単純な決済方法です。

          下記の画像付き資料をご確認ください。

          リンクフォーム決済の設定方法(PDFファイル)

          11.1.6 決済フォームの種類

          決済フォームとは、決済や申込のために消費者が情報を入力する画面のことです。
          本サービスでは3種のフォームを選択可能です。加盟店さまの利用イメージに沿ったフォームを選択してください。

          フォームのセキュリティ

          本サービスの全てのフォームは、加盟店さまのwebサイトにカード情報が通過することがなく、保存することも処理することもありません。
          これにより、カード情報の漏洩リスクを最小限に抑えながら、柔軟な課金方式で商用サイトを運用できます。

          決済フォームの選択基準

          フォーム種類対応している決済手段設置方法このような方向け
          ウィジェット
          詳細
          全て十数行のごく短い(※)タグプログラミング可能でシステム連携する
          多品目を合算して決済する
          インラインフォーム
          詳細
          クレジットのみ40行程度の短い(※)タグかjavascriptのコード
          リンクフォーム
          詳細
          全て短縮URLとそのQRコードをメールやメッセンジャーで送信
          webサイトには<a>タグで設置
          システム連携しない
          プログラミング不可
          単品販売のみ
          ※…指定するパラメータのフィールド数次第で増減

          消費者の支払いフロー

          当社決済フォームを利用した場合の、決済手段ごとの支払いフローは、下記の画像付き資料を参照してください。

          消費者の支払いフロー(PDFファイル)

          ジェネレータでタグをかんたん出力

          プログラミングの難しい加盟店さま向けに、指定されたパラメータでの各種決済フォーム用のタグを出力するジェネレータを管理画面内に用意しています。 ※利用方法はこちら

          もちろん、各種パラメータを変数として、動的にタグ出力するプログラムを作成いただくことも問題ありません。
          そのためのSDKもこちらに用意しています。

          11.1.7 トークンとは

          トークンとは、カード情報(カード番号と有効期限)を復号できないよう、ランダムな文字列に暗号化したもののことです。

          本サービスの決済フォームでは、消費者が入力したカード情報を自動的にトークンへ置き換える処理を行います。
          これを「トークン化」といいます。

          トークンには複数の種類があります。
          どの種類のトークンを作成するか、トークンを用いてどのような処理を行うかは、加盟店さまが自由に指定できます。
          行える処理については、ページ下部「チェックアウトタイプとトークンタイプの見取り図」を参照してください。

          トークンの種別

          当社サービスで発行できるトークンの種別(token-type)には以下の3つがあります。

          one_time(ワンタイムトークン)

          ワンタイムトークンは1回だけ課金を作ることができ、有効期間は作成から5分間です。
          大量の課金を処理するために、並行して複数のワンタイムトークンを作ることができますが、一定期間内に同一のカードで課金できる回数には制限があります。

          subscription(定期課金トークン)

          一定のスケジュールで消費者に請求をする必要がある場合、定期課金トークンの利用を推奨します。
          このトークンは定期課金を作成することができ、定期課金では課金の間隔、初回金額、定期課金金額、開始日を指定することができます。
          このトークンの有効期間は作成から5分間です。定期課金はキャンセルされるまで期限なしで継続されますが、課金回数を指定した定期課金の作成も可能です。

          ※当システムでは同一カード番号で定期課金トークンを作成できるのは1つまでのため、5分以内に同一カード番号を入力して送信するとエラーが発生します。
          定期課金トークンに対して課金されると再度作成が可能になります。

          recurring(リカーリングトークン)

          一度決済したクレジットカードで、任意のタイミングで再び決済を行いたい場合はリカーリングトークンの作成を推奨します。
          トークンが作成されると、その個人情報は UnivaPay のプラットフォーム上に安全に保管されます。

          初回の処理で課金を行わずカード情報の登録のみ行う運用の場合は、セキュリティコード認証を行うように実装する必要があります。
          上記運用でセキュリティコード認証を行わない場合、作成後5分以内にトークンが使用されないとCVVは自動的に期限切れになり、それ以降の課金は失敗します。
          ※詳細はこちら

          トークン作成時のチェックアウト種別

          トークン作成時のチェックアウト(checkout-type)の種類は、以下2通りです。
          表内で動作を説明します。

          checkout-type説明
          tokenカード情報をトークン化するが、その際に課金を伴わない
          paymentカード情報をトークン化するが、同時に課金も行う

          トークン種別とチェックアウト種別の見取り図

          checkout-type=
          token
          checkout-type=
          payment
          token-type=
          one_time
          非推奨
          ※有効期限が5分だけで存在意義が薄い
          都度課金時に推奨
          token-type=
          subscription
          いつでも自動課金を開始できる
          「定期課金トークン」を作成
          (要保存)

          「定期課金」の作成リクエストがあるまで課金しない
          指定されたサイクルと金額で、
          停止申請があるまで自動で課金される
          「定期課金」データを作成
          (要保存)

          指定次第で初回分も課金

          「定期課金トークン」も作成
          token-type=
          recurring
          いつでも課金できる状態の
          「リカーリングトークン」を作成
          (要保存)
          初回の課金を行い、かつ、
          いつでも課金できる状態の
          「リカーリングトークン」を作成
          (要保存)

          11.1.8 処理と課金の種類

          「処理」の種類

          本サービスには、4つの処理があります。
          決済フォームのタグやコードを設置したり、書き出す際には以下を参照してください。

          課金の種類特徴利用可能な決済手段
          オーソリ(仮売上)指定した金額の決済が可能なクレジットカードに対し、与信枠を仮押さえする

          この仮押さえは、各カードの発行会社が定める期間中(国内発行は60日間、海外発行は30日間が典型)のみ有効です。

          本サービスでは、課金の作成をリクエストする際にcaptureフィールドにfalseの値を指定することで、オーソリ処理が行えます。

          一般的な物販では、注文時は消費者によってオーソリの手続きが行われるようにし、発送時に加盟店側でキャプチャするという運用が主流です。
          しかし、在庫切れでメーカー取り寄せとなった場合など、発送手続きまでに時間がかかる場合は、一旦のキャンセル処理の実施が推奨されます。
          その理由は、消費者の与信枠を長期間圧迫することを避けるためです。
          クレジットカード
          Paidy
          セキュリティコード認証(CVV認証)入力されたクレジットカードが、決済時点で有効かどうかを確認する

          カード情報のトークン化を行う際に消費者へセキュリティコード認証を要求し、1円のオーソリを行うことで、カードの有効性チェックをしています。

          この処理によって、初回の決済で課金を行わずにカード情報をトークン化し、後日課金を行えます。
          クレジットカード
          キャプチャ事前に作成したトランザクショントークンに対し、売上確定処理を行う

          オーソリ済みの課金データに対してキャプチャを行うと、売上の処理が行われ、仮押さえされていた与信枠が売上確定の状態で消し込まれます。
          クレジットカード
          Paidy
          返金過去にキャプチャした課金データに対し、返金処理を行う

          返金を実行すると、既にカード会社からの引き落としが完了した後でも、各カード会社の引き落とし日に相殺される、もしくは振込が行われるといった処理がされます
          返金は管理画面からの操作、またはAPIへのリクエスト送信で行います。
          全て

          「課金」の種類

          本サービスには3つの課金種類があります。
          決済フォームのタグやコードを設置したり、書き出す際には以下を参照してください。

          課金の種類特徴利用可能な決済手段
          都度課金一度きりの決済を行う最も基本的な課金方式です。
          クレジットカードの場合のみ
          ・オーソリ(仮売上)
          ・キャプチャ(売上確定処理)
          が指定できます。
          全て
          定期課金指定したサイクルで定期的に課金します。
          停止・再開は管理画面の「定期課金」メニューまたはAPIで可能。
          クレジットカード
          Paidy
          リカーリング課金フォームで入力されたカード情報を
          「リカーリングタイプ」のトークンとして保存し、
          課金時に送信する必要があります。
          任意の周期と金額で課金することができます。
          クレジットカード
          銀行振込
          コンビニ決済
          Paidy

          11.1.9 処理結果の通知と取得

          本サービスとシステム連携して、注文や消費者のデータベースへ、支払い状態を反映する必要がある場合は、ウェブフックを受信してデータベースへの書き込みを行うプログラムを作成・設置してください。

          ウェブフックの実行はベストエフォートであるため、対象のサーバや回線の状況によっては受信に失敗することがあります。

          したがって、処理結果の判定をウェブフックで行うことは問題ありませんが、本来、処理結果を受信しているべきだが未受信ステータスの注文情報を、加盟店さまのデータベース上で検知した場合には、本サービスのAPIへ能動的に

          • GET(条件を指定し、単数の処理情報取得)
          • LIST(条件を指定し、複数の処理情報取得)

          へのリクエストを行い、補完することを推奨します。

          コールバックを結果判定に用いる場合

          ウィジェットまたはインラインフォームを利用する場合、ウェブフックだけでなく、処理の完了後に行われるJavaScriptのコールバックも結果判定に利用できます。
          ただし、

          • 処理中の消費者に回線の不調や断絶が起きた場合
          • 処理中に加盟店さまのサーバや回線の不調やダウンがあった場合

          には、受け取れない場合がありますので、ウェブフックと同様にGET/LISTによる補完をしてください。

          また、以下についても注意してください。

          課金の種類処理結果の通知・取得方法
          定期課金subscription本サービス側で自動実行するため、結果の取得方法がウェブフックかGET/LISTリクエストに限定される
          リカーリング
          recrring
          APIへのリクエストで行われるため、結果の取得方法がレスポンス、ウェブフック、GET/LISTリクエストに限定される

          【重要】アクワイアラやセンター毎に異なる挙動

          一部のアクワイアラ(カード会社)やセンター(カード会社と紐づくオンライン処理用のセンター)では、リクエストが行われた場合、処理がラグをもって段階的に行われることがあります。
          特に、海外クレジットカード会社に接続している場合は、一般的に数分ほどのラグをもって処理が行われます。

          当システムの仕様

          当社からアクワイアラへリクエストを行った後、GETリクエストを定期的に行うことで結果を取得し、ステータスを反映する仕様です。
          そのため、capturerefundcancelのリクエストを行った場合、ステータスが段階的に変化します。
          返却されるステータスは、リクエストによって異なります。

          リクエスト段階的に返却されるステータス
          capturependingauthorized※、successful/ failed / error
          refund / cancelpendingsuccessful/ failed / error

          ※アクワイアラやセンターのメンテナンスや障害、通信状況などによってauthorizedの状態が続くことがあります。

          また、決済フォーム(リンクフォーム / ウィジェット / インラインフォーム)より消費者が課金を行う場合、当社からアクワイアラへ課金リクエストが成功した時点で完了画面へ遷移する仕様です。

          海外クレジットカード会社に接続している加盟店さまの実装方法

          課金のGETリクエストやコールバックで課金が作成されたことを確認し、authorizedの確認をもって次の処理を実行する等、数分ほどのラグを考慮した実装を推奨します。
          サービスや商品の提供は、継続的な課金のGETリクエスト(ポーリング機能の活用等)によってステータスが successful に更新されたことを必ず確認してから行ってください。

          11.1.10 【重要】リカーリング時の注意点

          トークンタイプにrecurringを指定する場合は、繰り返し課金を目的としたトークンの保存を行うことについて、消費者に対して必ず事前の同意承諾を得るか、加盟店サイト内で十分な告知※を行ってください。

          万が一、同意の取得や告知が十分でなかった場合は、消費者から加盟店さまに対して、支払いに対する異議や抗弁の申し立てがされる場合があります。

          また、そのような事態が連続した場合は、カード会社から加盟店さまに対して加盟契約解除を言い渡されることがありますが、当社ではその責任を一切負いかねます。予めご了承ください。

          「十分な告知」とは

          告知内容例

          クレジットカード情報はPCI-DSSに準拠したシステムでトークン化され、当社ではトークンを保存します。トークンの利用目的は、消費者の再購入やサービス利用状況に応じて再課金することです。課金は必ず消費者の事前同意を得た状態で行われ、無断で行われることはありません。なお、保存したトークンは本サービスでのみ利用可能なもので、万一漏洩することがあっても他サービスの課金に使われることはありません。

          ウィジェットボタンの直下など、消費者が確認しやすい場所にに注意書きを設置してください。
          なお、インラインフォームをご利用の場合は、インラインフォームが含まれる前のページか、インラインフォームの付近に、注意書きを設置してください。

          11.1.11 制限機能

          本サービスにはいくつかの制限があります。

          IPアドレス制限(連続失敗回数、IP拒否)

          同一のグローバルIPアドレスから決済を連続で失敗した場合、そのIPアドレスに対して12時間の制限をかけます。
          1つの加盟店で制限されたIPアドレスは他加盟店でも制限され、制限のかかったIPアドレスから管理画面にアクセスすると、
          管理画面>店舗>リンクフォーム設定上にエラーが表示されます。

          • 制限の対象となる決済
            モード:本番モード
            決済手段:すべて
            決済経路:課金フォームからの決済(リカーリング課金含む)
                 ※CSV課金は対象外
          • 制限がかかった場合の挙動
            エラーになり履歴に残らない
            エラーコード:「SERVICE_RESTRICTED」
            HTTPレスポンスコード:「429」
            決済完了画面:メッセージ「失敗回数が上限に達したため、一定時間サービスを利用できません。時間をおいて再度お試しください。」と表示

          返金制限

          1か月間の課金額より返金額が上回る場合は返金不可の制限をかけます。

          海外カード拒否

          海外で発行されたカードでの決済を拒否します。
          ※管理画面から制限の有無が設定可能です。

          短時間での大量のリクエストの制限

          短時間で大量のリクエストをした場合に制限をかけます。
          詳細はAPI制限のページを確認してください。

          11.1.12 用語集

          このページでは、本ドキュメントで使用している用語の意味を説明します。
          ※あくまで本ドキュメント内における用語の意味です。

          あ行

          用語説明
          アクワイアラ加盟店を増やすことを目的としたカード会社のこと。
          国際ブランドであるVisaやMasterCardなどからライセンスを取得し、加盟店開拓・審査・管理等を行う。
          後払い商品を受け取った後、指定された期日までに代金を支払う決済手段のこと。
          アプリトークン課金などのリクエストを行った店舗を判別するためのキーのこと。
          全ての決済で必須。
          イシュアカード利用者を増やすことを目的としたカード会社のこと。
          消費者に対してカードを発行し、引き落とし情報や利用状況の管理・利用明細の発行・請求等を行う。
          一時停止 / 永久停止定期課金を停止すること。
          停止後に再開可能な一時停止と、再開不可な永久停止の2つ種類がある。
          インターフェース異なる機器やシステム、ソフトウェア間で情報のやり取りが行われる際、その間をつなぐ装置や機能のこと。
          インラインフォーム決済フォーム(消費者がカード情報を入力するためのインターフェイス)のこと。
          インラインフレームに本サービスの決済フォームのリソースを表示するタイプ。
          ウィジェット決済フォーム(消費者がカード情報を入力するためのインターフェイス)のこと。
          ポップアップウインドウとして表示されるタイプ。
          ウェブフック課金などイベントが実行された際、外部サービスにHTTP で通知する仕組みのこと。
          オーソリ指定した金額の決済が可能なクレジットカードに対し、与信枠を仮押さえすること。
          仮売上と同義。
          詳細はこちら

          か行

          用語説明
          回数指定 / 回数無制限定期課金の種類の名称で、課金が行われる全体の回数を指定されたタイプ / 回数を指定せず、停止するまで課金を継続するタイプのこと。
          課金商品やサービスの購入(利用)料金を課すること。
          加盟店本サービスの利用中の法人 / 個人のこと。
          仮売上指定した金額の決済が可能なクレジットカードに対し、与信枠を仮押さえすること。
          オーソリと同義。
          詳細はこちら
          カードブランド独自の決済システムネットワークをクレジットカード発行会社へ貸し出している会社のこと。
          国際ブランドの中で Visa、Mastercard、JCB、American Express、Diners Club が主流で「世界5大ブランド」と呼ばれている。
          為替レート国の通貨を他国の通貨に交換する場合の取引価格および交換比率のこと。
          外国為替相場と同義。
          キャプチャオーソリ(仮売上)処理を行った課金情報に対して、売上確定処理(実売上)を行うこと。
          キャンセルステータスが「処理待ち」もしくは「オーソライズ済」の課金情報に対して行う、課金を取りやめる処理のこと。
          銀行振込指定された銀行口座にお金を振り込む支払方法のこと。
          クエリパラメータURLの末尾( ? 以降)に付与されているパラメータのこと。
          主に抽出する条件を絞り込むことを目的として追加する。
          ゲートウェイ店舗およびオンライン上で取引のカード決済を可能にする技術プラットフォームのこと。
          接続先と同義。
          決済お金の支払うことで債権・債務を解消すること。
          決済手数料 / 手数料率消費者がキャッシュレス決済で支払い時に、加盟店さまに発生する費用と、決済金額に対するその割合のこと。
          コールバックウィジェットタグ内のソースコードに関数を定義しておくことで、各イベントが発生した時にその内容を含めた通知を受け取れる仕組みのこと。

          さ行

          用語説明
          システム連携先当システムと加盟店さまのシステムを連携して、加盟店さまのユーザーに対して提供している事業者さまのこと。
          消費者加盟店さまの商品やサービスの購入者(利用者)のこと。
          商品加盟店さまが販売している商品の名称や金額・課金方式を登録することができる、当システムの機能名。
          シークレット機密性の高い情報や特権システムを含むサービスおよびITリソースにアクセスするために使用する情報のこと。
          当システムでえは、アプリトークン発行時にシークレットも同時に発行される。
          ステータス情報の処理状態のこと。
          セキュリティコードクレジットカードの不正利用を防ぐために、カードの裏面に印字されている3桁(または4桁)の数字のこと。
          セキュリティコード認証インターネットなどでクレジットカードを利用するときに、セキュリティコードを入力すること。 
          接続先店舗およびオンライン上で取引のカード決済を可能にする技術プラットフォームのこと。
          ゲートウェイと同義。

          た行

          用語説明
          チェックアウト消費者が購入を完全に確定し、支払いを完了させること。
          チャージバックカード利用者が不正利用などの理由により利用代金の支払に同意しないために、クレジットカード会社が加盟店さまに対して、その代金の支払いを取り消しまたは返金を要求すること。
          通知メール加盟店さまと消費者に対して、処理結果に応じて各種メールが送信される通知機能のこと。
          都度課金一度きりの決済を行う最も基本的な課金方式のこと。
          定期課金定期的かつ自動的に課金する、当システムの機能のこと。
          店舗1つの契約に対して作成された店子(たなこ)のこと。
          1加盟店ごとに1店舗存在している。
          トランザクションオーソリ,キャプチャ,キャンセル等、取引を行うために必要な「処理」の単位のこと。
          トランザクショントークン / トークンカード情報(カード番号と有効期限)を復号できない別の文字列に置き換えた文字列のこと。
          トークン化によって、情報漏えいリスクを軽減可能。

          な行

          用語説明
          入金商品やサービスの購入(利用)料金を、銀行やコンビニ等から指定口座へ振り込むこと。

          は行

          用語説明
          パラメータシステムの挙動に影響を与えるデータ(変数)のこと。
          任意のパラメータを指定することで、処理を変化させることができる。
          フィールド名項目名のこと。
          例)amount:金額
          プロバイダクレジットカードをはじめとする決済手段のオンラインサービスを提供する企業のこと。
          分割払い商品やサービスの購入(利用)料金を、複数回に分けて支払う方法のこと。
          分割可能な回数は、カード会社と消費者の契約によって異なる。
          冪等ある操作を何度行っても、同じ結果になるという概念のこと。
          当社では、冪等なリクエストを行うことで予期しない理由で1つのリクエストが複数回実行されないようにし、重複決済を防ぐことが可能。
          詳細はこちら
          返金消費者にお金を返す処理のこと。
          ポーリング対象のトランザクションに対してステータスの変化を検出するまで GET リクエストを行い、トランザクションのステータスが変化したタイミングで通知を受け取れる実装方法のこと。
          詳細はこちら

          ま行

          用語説明
          メタデータ決済情報やトークン情報に任意で付与できるデータのこと。
          主に、本サービスと消費者や消費者による注文データ等を関連付けるために使用される。

          や行

          用語説明
          与信枠カードの利用可能枠のこと。
          利用限度額と同義。

          ら行

          用語説明
          リカーリングトークン繰り返し課金に利用するために、消費者のクレジットカード情報をトークン化(復号できない別の文字列に置き換え)したもの。
          リカーリング課金リカーリングトークンに対して課金を行うこと。
          詳細はこちら
          リトライ定期課金の支払い失敗後、再度課金を行うこと。 
          詳細はこちら
          リボ払い「リボルビング払い」の略で、一定の金額を毎月返済するクレジットカードの支払方法のこと。
          リンクフォーム決済フォーム(消費者がカード情報を入力するためのインターフェイス)のこと。
          APIに対してHTTP GETメソッドで決済の詳細を送信することで、決済フォームのリソースを生成し、そこ消費者を遷移させるタイプ。

          英数字・記号

          用語説明
          CSV課金CSVファイルをアップロードすることで、既存の顧客に再び課金することができる機能のこと。
          詳細はこちら
          EMV 3-Dセキュアカード利用者の決済情報などを基に、カード会社が高リスクと判断する取引にのみワンタイムパスワードなどの追加認証を実施するサービスのこと。
          ID「identification(アイデンティフィケーション)」の略で、情報を識別・把握するためのユニークな文字列のこと。
          ISO-4217各種の通貨を表す国際規格(通貨コード)のこと。
          ISO-8601日付と時刻の表記に関する国際規格のこと。
          PCI-DSS「Payment Card Industry Data Security Standard」の略で、カード会員情報の保護を目的に定められた、
          情報セキュリティの国際統一基準のこと。
          QRコード決済 / バーコード決済QRコードやバーコードを読み取って行う決済方法のこと。

          11.2 実装ガイド

          本サービスと加盟店さまの商用サイトとを連携するための実装ガイドです。
          「はじめに」を通読の上、ご覧ください。

          11.2.1 ウィジェット - 概要

          ウィジェットは、消費者がカード情報を入力するためのインターフェイスで、ポップアップウインドウとして表示されるタイプのフォームです。

          ウィジェットの役割

          ウィジェットは、以下の役割を果たします。

          支払い方法の選択

          消費者に、希望の支払い方法をクリック(またはタップ)で選択させます。

          この選択画面で表示される選択肢は、ウィジェットのタグまたはコードの記述内容に依存します。なお、支払い方法を単一に指定した場合、この選択画面は省略されます。

          必須情報の入力

          選択された「支払い方法」毎に予め設定されている必須情報を、消費者に入力させます。

          入力欄はウィジェットのタグまたはコードの記述内容によって、追加することも可能です。
          詳しくはこちら

          ウィジェットで行われる処理

          選択された「支払い方法」毎に、各種処理を行います。

          一部、赤字※印の項目は申込完了後、消費者が支払いを行うのを待機します。
          誤って「決済完了」とみなさないよう、くれぐれも注意してください。

          支払い方法処理認証後の処理
          クレジットカードカード会社に対し、要求された処理(オーソリ/キャプチャ)で認証認証済みのカード情報をトークン化して決済処理

          以降、以下を<共通処理>と記載:
          JavaScriptでコールバック
          ウェブフック
          APIからの取得が可能に
          銀行振込その申込専用の振込口座を発行し、メール送信(疎通は確認しない)本サービスが振込完了の通知を受け取り次第、完了判定
          <共通処理>
          PaidyPaidyのフォームに遷移し、メールアドレスや電話番号で認証認証時点で完了判定
          <共通処理>
          オンラインモバイル各銘柄の挙動詳細はこちら本サービスが通知を受け取り次第、完了判定
          <共通処理>
          コンビニ決済支払いたいコンビニを選択し「申込」を行い、メール送信(疎通は確認しない)本サービスが支払完了の通知を受け取り次第、完了判定
          <共通処理>
          ※…加盟店さまが誤って「決済完了」とみなした場合の損害や責任は、当社では一切負いません

          ウィジェット内の表示項目

          ウィジェット内の表示項目は、設置時のパラメータによって以下を制御可能です。

          • ヘッダーテキスト
          • ヘッダー説明文
          • 支払いボタンのテキスト
          • QRコードの色(オンラインモバイルでのみ有効)
          • QRコード内のロゴ
          • 任意のフィールド(入力欄)追加

          詳しくはこちら

          ウィジェットのデザイン

          管理画面から、ウィジェットのデザインを編集可能です。

          店舗>一般>全体設定>ブランディング から、PNGまたはJPGで店舗アイコンを編集できます。
          未編集の場合は標準(デフォルト)の画像が表示されます。

          店舗>決済フォーム>ウィジェット>テーマ から、タイトル背景とメイン(タイトルバーとボタンに使用)のカラーが編集可能です。

          消費者の支払いフロー

          ウィジェットを利用した場合の決済手段ごとの支払いフローは、下記の画像付き資料を参照してください。

          消費者の支払いフロー(PDFファイル)

          11.2.2 リンクフォーム - 概要

          このページは「初期設定」が完了していることを前提に作成しています。

          リンクフォームは、APIに対してHTTP GETメソッドで決済の詳細を送信することで、決済フォームのリソースを生成し、そこ消費者を遷移させ、決済後にリダイレクトすることができます。

          加盟店さまの多くは、管理画面から店舗内にリンクフォームの設定をし、短縮URLをメール送信するか、サイト内に<a>タグとして設置する運用をすると想定しています。

          そのため、原則的に不要と認識していますが、ここでは、APIの挙動を解説します。

          プログラムの記述ができる方にとっては、リンクフォームを選択して動的にタグを書き出すことは、タグが長くなるだけで何のメリットもありません。
          また、iframeタグを使用してウェブページへリンクフォームを埋め込む実装はできません。
          そのため、動的にタグ出力をするのであれば、メリットの多いウィジェットを採用することを強く推奨します。

          リンクフォームは、技術や予算の都合上、動的なタグ出力を行えない方を対象する機能とご認識ください。

          リンクフォームの役割

          リンクフォームは、以下の役割を果たします。

          支払い方法の選択

          消費者に、希望の支払い方法をクリック(またはタップ)で選択させます。

          この選択画面で表示される選択肢は、リンクフォームのタグの記述内容に依存します。なお、支払い方法を単一に指定した場合、この選択画面は省略されます。

          必須情報の入力

          選択された「支払い方法」毎に予め設定されいる必須情報を、消費者に入力させます。

          入力欄はタグの記述内容によって、追加することも可能です。
          詳しくはこちら

          APIのURL

          https://checkout.univapay.com/forms/<各店舗のフォームID>

          各店舗のフォームIDは、管理画面の店舗>店舗名をクリック>決済フォームタブ>リンクフォーム設定>URLコード
          から確認してください。
          forms/から?appIDの間に記載されています。

           例)https://checkout.univapay.com/forms/0a000ebb-caa0-00bf-ad0e-0de0e000fbe0?appId=xxx…

          各種パラメータを?hoo=111&bar=222&baz=333…のように続けて記述したものを表示し、消費者の遷移を促してください。

          タグのジェネレータ

          管理画面の店舗>店舗名をクリック>決済フォームタブ>リンクフォーム設定>URLコード
          で、各種設定を反映した、タグの生成が可能です。

          管理画面から行える設定

          管理画面の店舗>店舗名をクリック>決済フォームタブ>リンクフォーム設定>設定
          で、リンクフォームの各種設定が可能です。

          以下は、事前に管理画面から動作を設定できる内容です。

          決済方法(ON/OFF)

          以下は、タグで値を指定すれば、そちらを優先し、元の設定を無視します。

          • クレジットカード
          • コンビニ
          • 銀行振込
          • 他、オンラインモバイルの各銘柄

          お客様情報(ON/OFF)

          以下は、タグ設置時にの指定に関わらず、設定が優先されます。

          • 名前を必須にする
          • カナを必須にする
          • メールアドレスを必須にする
          • 電話番号を必須にする
          • 住所を必須にする

          言語(ドロップダウンメニュー)

          言語は、タグで値を指定すれば、そちらを優先し、元の設定を無視します。

          カスタムの入力欄

          カスタムの入力欄は、タグで何かしらの値を指定すれば、そちらを優先し、元の設定を無視します。

          リダイレクトURL

          リダイレクトURLは、タグで何かしらの値を指定すれば、そちらを優先し、元の設定を無視します。
          以下の処理ステータス毎に、別のURLを指定できます。

          • 成功
          • 処理待ち
          • 失敗

          テーマ

          テーマの設定は、タグでの指定で変更することはできません。全てのフォームで統一されます。

          • タイトル(ON/OFF)
            • 店舗名の表示
            • ロゴの表示
          • テーマ(ラジオボタン)
            • ライト
            • ダーク
          • カスタマイズ(カラーコード)
            • ヘッダー
            • ボタン
            • 背景
            • 内容の背景(カラム内側の色)

          完了後の処理

          処理の完了後は、パラメータによる指定通りに、消費者をリダイレクトします。

          ウィジェットのようにリダイレクト時に結果をHTTP GETやSubmitで送信したり、JavaScriptのコールバックはできません。

          一方で成功時と失敗時、それぞれのリダイレクト先は指定でき、追加したメタデータをHTTP GETメソッドで送信(消費者の遷移と同時に)できます。

          したがって、処理後の画面遷移を制御することは可能ではありますが、送信先のURLは消費者からも可視であるため、処理結果の判定や、サービスを受ける権利の付与は行わない事を推奨します。
          また、誤ってサービスを履行したり、物品を発送した場合でも、当社では一切の責任を負いかねます。

          結果判定には、消費者から不可視の「GETによる取得」か、「ウェブフック」を用いることを推奨します。

          消費者の支払いフロー

          リンクフォームを利用した場合の決済手段ごとの支払いフローは、下記の画像付き資料を参照してください。

          消費者の支払いフロー(PDFファイル)

          11.2.3 インラインフォーム - 概要

          このページは初期設定が完了していることを前提に作成しています。

          インラインフォームは、インラインフレームに本サービスの決済フォームのリソースを表示し、消費者に直接カード情報を入力させて処理することを目的としたものです。

          インラインフォームはクレジットカード決済のみを行うことができ、他の決済は利用できません。

          インラインフォームの役割

          インラインフォームは、以下の役割を果たします。

          必須情報の入力

          クレジットカード決済の際の必須情報を、消費者に入力させます。

          入力欄はインラインフォームのタグ記述内容によって、追加することも可能です。
          詳しくはこちら

          インラインフォームで行われる処理

          支払い方法処理認証後の処理
          クレジットカードカード会社に対し、要求された処理(オーソリ/キャプチャ)で認証認証済みのカード情報をトークン化して決済処理

          完了後の処理:
          <form>submit
          ウェブフック
          APIからの取得が可能に

          インラインフォームのデザイン

          インラインフォームのデザインは、パラメータによって指定可能です。
          設置先のサイトに、ある程度違和感なく溶け込むデザインを施すことができます。

          詳しくはこちら

          11.3 決済手段別 実装ガイド

          本サービスと加盟店さまの商用サイトとを連携するための実装ガイドです。
          「はじめに」を通読の上、ご覧ください。

          11.3.1 銀行振込 - 概要

          本サービスの銀行振込は、申込ごとに発行したユニークな口座番号への振込確認・消込を自動で行い、結果を反映する仕組みです。
          利用する口座は「GMOあおぞらネット銀行」から発行されます。
          これにより、手作業による振込確認と消込が必要なくなります。

          銀行振込でサポートしている内容は、以下を参照してください。

          課金方式

          都度課金およびリカーリング課金を利用できます。
          定期課金には利用できません。

          実装方法

          当社決済フォーム(リンクフォーム,ウィジェット)の設置と、APIでの連携が可能です。

          処理

          以下の処理は対応していないため、有効にしても無視されます。

          処理注意点
          CVV認証(CVV auth)
          仮売上
          分割払い
          無効な項目のため
          定期課金未実装な項目のため

          11.3.2 コンビニ決済 - 概要

          電算システムを利用した決済手段です。

          決済フォームでの情報入力が完了すると、指定したコンビニエンスストアで入金を行うための情報が発行されます。
          入金に必要な情報は、通知メールもしくはメタデータから確認可能です。
          発行された情報をもとに消費者が入金を行うと、入金確認を自動で行い、結果を反映します。

          また、管理画面の「ウェブフック」でURLを登録することによって、入金結果のシステム通知を受けることも可能です。

          コンビニ決済でサポートしている内容は、以下を参照してください。

          課金方式

          都度課金およびリカーリング課金を利用できます。
          定期課金には利用できません。

          実装方法

          当社決済フォーム(リンクフォーム,ウィジェット)の設置と、APIでの連携が可能です。

          処理

          以下の処理は対応していないため、有効にしても無視されます。

          処理無視される理由
          CVV認証(CVV auth)
          仮売上
          分割払い
          無効な項目のため
          定期課金未実装な項目のため

          11.3.3 オンライン決済 - 概要

          決済処理を行う際に各QR事業者(プロバイダ事業者)の画面に遷移し、消費者側がログインして決済する または 各アプリを開いて決済する手段です。
          下記がオンライン決済に該当します。

          • PayPay Online
          • Alipay Online
          • Alipay Plus Online
          • WeChat Pay Online
          • d払い Online

          オンライン決済でサポートしている内容は、以下を参照してください。

          課金方式

          都度課金のみ利用できます。
          定期課金やリカーリングトークンを用いた継続的な課金には利用できません。

          実装方法

          当社決済フォーム(リンクフォーム,ウィジェット)の設置と、APIでの連携が可能です。

          処理

          以下の処理は対応していないため、有効にしても無視されます。

          処理無視される理由
          カード登録(リカーリングトークン作成)
          CVV認証(CVV auth)
          仮売上
          分割払い
          無効な項目のため
          定期課金未実装な項目のため

          11.3.4 Paidy - 概要

          Paidy(後払い)とは、購入代金を自由な方法で翌月にまとめて支払うことができる決済手段です。
          決済フォームでメールアドレスと電話番号を入力し、SMS認証を行うことで決済を行います。

          Paidyでサポートしている内容は、以下を参照してください。

          課金方式

          都度課金および定期課金、リカーリング課金を利用できます。

          実装方法

          当社決済フォーム(リンクフォーム,ウィジェット)の設置のみ対応しています。
          APIでの連携には対応していません。

          処理

          以下の処理は無効な項目のため、有効にしても無視されます。

          • CVV認証(CVV auth)
          • 分割払い

          11.4 各種機能詳細

          本サービスを実装する上で、必要に応じて理解する必要がある各機能の仕様について記載しています。

          11.4.1 定期課金

          定期課金では、事前に指定したサイクルで自動的に課金を行います。
          2回目以降の課金は、課金日の午前7時※より順次課金を開始します。
          ※毎日の定期課金 および 定期課金開始日が定期課金作成日の1日後な場合に限り午前9時

          定期課金を作成する方法については実装ガイドの各ページを参照してください。

          ステータス

          ステータス状態
          待機中定期課金を作成し、初回課金の待機中
          継続中現在稼働中の定期課金
          一時停止一時停止され再開可能な状態
          または 定期課金失敗回数を超えた状態
          リトライ待ち継続中の定期課金で課金を失敗し、再課金を待っている状態
          または 一時停止後に再開し、再課金を待っている状態
          永久停止定期課金が完全に停止され再開不可な状態
          作成失敗定期課金作成のため初回課金を行うも決済失敗した状態
          (定期課金として稼働していない状態)
          完了指定した課金回数分の決済が終わった状態
          または 分割払いが成功した状態

          定期課金で行うことができる処理

          処理説明
          一時停止・永久停止・停止予約停止処理をするとその時点から継続的な課金を行わないようになる
          設定によっては停止リクエストがあった時、次回課金実行日まで停止しないようにすることも可能
          再開一時停止になっている定期課金を再開する
          再開後はリトライ日、もしくは次回課金日に実行される
          リトライ定期課金のサイクルでの課金が失敗した際に一定間隔で再度課金を実行する
          間隔・回数はリクエストのパラメータまたは管理画面より設定が可能
          支払い情報の更新クレジットカード等、消費者の支払い情報を変更する
          詳細はこちら
          定期課金情報の更新管理画面から次回課金日、次回課金金額、メタデータ、メールアドレスなどの編集が可能
          仮売上定期課金の初回課金を仮売上にする
          キャプチャされた後に定期課金が開始しサイクル毎に課金が行われる
          回数制限付き定期課金回数を制限した定期課金を行い、回数分の課金が完了後終了する※
          初回無料の定期課金初回処理でセキュリティコード認証を行うことで、初回の金額が0円の定期課金を作成することが可能
          分割払い各決済フォームで分割回数を指定して決済すると、定期課金として作成される
          APIで作成する場合は定期課金オブジェクトでフィールドを指定する必要あり
          ※割賦販売法に基づき、この機能を1商品を複数回に分けて決済するように利用することは禁止されています。
          このような利用が発覚した際、カード会社からの調査依頼の発生や、加盟店契約の解約に至る可能性があります。

          11.4.2 消費者によるお支払い方法の更新

          消費者が自ら支払い方法を更新する方法はいくつか存在します。
          新たに情報を登録して加盟店さまで既存の支払い情報と紐づけていただくか、既存の支払い情報を引き継いで更新する2つの場合に分かれます。

          定期課金

          消費者が利用するフォーム加盟店さまの提供方法
          リンクフォームsubscriptionidを利用したフォームを準備する
          ※詳細はこちら
          ウィジェット・インラインフォームdata-subscription-idを利用したフォームを準備する
          ※詳細はこちら
          定期課金変更URL管理画面>定期課金>詳細 から、
          カード情報変更フォームのURLを消費者に共有する
          支払い情報の確認・変更画面別ページで設定、共有方法を記載

          リカーリングトークン

          消費者が利用するフォーム加盟店さまの提供方法
          リンクフォームカード登録のみのフォームを準備する
          ※メタデータやトークンIDなどで消費者を判別することが必須
          ウィジェット・インラインフォームカード登録のみのフォームを準備する
          ※メタデータやトークンIDなどで消費者を判別することが必須
          支払い情報の確認・変更画面別ページで設定、共有方法を記載

          以下のページでは「支払い情報の確認・変更画面」についての利用方法を説明します。

          11.4.3 CSVデータのダウンロード

          決済、定期課金、リカーリングトークンの情報をCSVデータで管理画面からダウンロードすることができます。

          作成したデータのダウンロード有効期限は1時間です。
          仕様上、50万件以上のダウンロードを行おうとするとエラーが発生しますので、それより少ない件数で実行してください。

          各検索条件を指定することで、出力させたい情報を絞り込むことが可能です。
          検索条件は加盟店さまがいる国が基準となって変動しますが、CSVに出力される決済データの時間帯は固定で日本標準時(JST)に設定されています。
           例:加盟店さまが台湾にいる場合
             検索場所…台湾 GMT+8: 2023/7/1 00:00:00 ~2023/8/1 00:00:00
             出力結果…日本 GMT+9:  2023/7/1 01:00:00 ~2023/8/1 01:00:00

          ダウンロード方法によって取得できる項目は一部異なります。
          決済、定期課金、リカーリングトークンに加え、決済の中でも管理画面の「すべてのプロバイダ」から決済方法毎に絞り込むことで一部項目が変化します。
          方法毎の取得項目の一覧についてはこちらのファイルから確認して下さい。

          取得できる項目一覧

          項目説明
          課金ID課金作成時に生成されるユニークなID
          定期課金ID定期課金作成時に生成されるユニークなID
          トークンIDトランザクショントークン作成時に生成されるユニークなID
          加盟店加盟店名
          店舗店舗名
          イベント実行された処理の種類
          ※詳細はページ下部の表
          イベント作成日時イベントが実行された日時
          イベント金額各イベントの金額
          イベント通貨イベントを実行した時の通貨
          定期課金作成日時定期課金を作成した日時
          定期課金更新日時定期課金が更新された日時
          定期課金金額(サイクル支払額)サイクル毎に支払う金額
          トークン作成日時リカーリングトークンが作成された日時
          最後に使用された日時リカーリングトークンに課金処理が実行された最新の日時
          セキュリティコード認証セキュリティコード認証を行ったリカーリングかどうか
          モード処理のモード
          本番 or テスト
          定期課金モード処理のモード
          本番 or テスト
          トークンモード処理のモード
          本番 or テスト
          トークンメタデータトークンに付与されているメタデータ
          課金メタデータ課金実行時に付与されたメタデータ
          課金ステータス課金の実行結果
          (リンク)
          定期課金ステータス定期課金の状態
          (リンク)
          決済方法決済方法
          プロバイダ決済方法
          メソッド決済の実行方法
          ブランドクレジットカードのブランド、もしくはコンビニ決済の支払い先店舗の種類
          ゲートウェイ決済接続先名
          エラーコードエラーコード
          承認番号接続先へリクエストした決済ごとの任意の番号
          返金作成日時返金実行日時
          理由返金理由
          メモ返金メモ
          返金金額返金金額
          返金通貨返金実行時の通貨
          返金ステータス返金の実行結果
          定期課金種類定期課金の種類
          通常or回数指定or分割orリボ
          スケジュール期間定期課金のサイクル
          月末に固定定期課金実行日が月末日に固定されているか
          次回課金日(次の支払い)次回課金日
          最後課金最後に定期課金が実行された日時
          次回課金金額次回課金金額
          分割残り金額回数指定定期課金の場合、支払い完了するまでの残り金額
          メールアドレスメールアドレス
          住所1番地
          住所2ビル名・その他
          市区町村市区町村
          都道府県都道府県
          郵便番号郵便番号
          カードの種類クレジットカードの種類
          クレジットorデビットorプリペイド
          カード名義カード名義
          有効期限(月)有効期限(月)
          有効期限(年)有効期限(年)
          下4桁クレジットカードの下4桁
          カテゴリークレジットカードの種類
          発行者クレジットカードの発行会社
          発行国クレジットカードの発行国
          CVVオーソリの利用セキュリティコード認証を行ったか
          CVVオーソリステータスセキュリティコード認証の状態
          お客様名消費者の名前
          お支払い期限入金(振込)期限日時
          金融機関番号310固定
          金融機関名GMOあおぞら固定
          支店番号振込先口座の支店番号
          支店名振込先口座の支店名
          口座種別普通固定
          口座番号振込先口座番号
          入金額入金した金額(合計ではない)
          銀行実行日GMOあおぞら銀行で支払いが実行された日時
          項目GMOあおぞら銀行側で実行された処理
          入金 or 支払い or(空白)
          入金ステータス入金の状態
          支払い金額GMOあおぞら銀行で支払いが実行された金額

          イベント種別について

          イベント内容
          売上課金処理が成功した
          売上失敗課金処理が失敗した
          取消課金処理が失敗した
          キャンセルオーソリ(仮売上)のキャプチャ/銀行振込/コンビニ決済/オンライン決済/対面QRコード決済(MPM)を申し込んだ状態で、加盟店さまが決済を取りやめた
          返金返金処理が成功した
          返金失敗返金処理が失敗した
          赤伝返金月をまたいだキャンセル処理が行われた
          ワンタイムトークン発行課金を行うためにワンタイムトークンが発行された
          リカーリングトークン発行支払い情報を登録するために、リカーリングトークンが発行された
          オーソリ仮売上処理が成功した
          オーソリ失敗仮売上処理が失敗した
          CVVオーソリカード登録をするために、CVV認証を行い成功した
          CVVオーソリ失敗カード登録をするために、CVV認証を行い失敗した
          キャップチャーオーソリ済の状態から、キャプチャー(実売上)処理を行った
          3-Dセキュア登録確認3-Dセキュア認証を行う必要があるかの確認処理を行った
          3-Dセキュア登録確認失敗3-Dセキュア認証を行う必要があるかの確認処理が失敗した
          3-Dセキュア認証処理待ち3-Dセキュア認証を行うためのイシュアトークン取得に成功した
          3-Dセキュア認証処理待ち失敗3-Dセキュア認証を行うためのイシュアトークン取得に失敗した
          3-Dセキュア認証3-Dセキュア認証処理が成功した
          3-Dセキュア認証失敗3-Dセキュア認証処理が失敗した
          3-Dセキュア認証タイムアウト3-Dセキュア認証処理中に、接続が切れた または 一定時間経過しても処理が完了しなかった等の理由でタイムアウトした
          銀行振込口座発行銀行振込の申込が入ったときに、振込口座が発行された
          銀行振込入金銀行振込の申込に対して、消費者が入金処理を行った
          処理待ちオーソリ(仮売上)のキャプチャ/銀行振込/コンビニ決済/オンライン決済/対面QRコード決済(MPM)の決済情報を生成し、消費者の課金処理を待っている状態
          処理待ち失敗オーソリ(仮売上)のキャプチャ/銀行振込/コンビニ決済/オンライン決済/対面QRコード決済(MPM)の決済情報の生成に失敗した

          11.4.4 CSV課金

          CSVファイルをアップロードすることで、既存の顧客に再び課金することができる機能です。
          顧客の支払い情報が予めリカーリングトークンとして登録されている必要があります。

          CSVファイルで提供された情報を元に、指定された顧客データの中で最も新しく登録されたリカーリングトークンを識別します。
          その後、リカーリングトークンに保存された支払い情報を再利用して、新たな課金を行います。

          対応している決済方法は、クレジットカード / Paidyのみです。
          銀行振込 / コンビニ決済は対応していません。

          ※ご利用にはオプション契約が必要です。

          ファイルのフォーマット

          CSVファイルのコンテンツ

          ※アップロード、結果ダウンロード時の文字コードはUTF-8です。

          CSVファイル作成には、4つの項目が必要です:

          項目説明
          ジョブIDどの種類のデータを探せばよいかをシステムに知らせます
          顧客データ顧客と関連するリカーリングトークンを識別するために使用されるデータです
          金額新しい課金金額を入力する欄です。例:1000
          通貨新しい課金通貨を選択する欄です。例:円ならJPY、米ドルならUSD

          CSV課金アップロード時にメタデータを付与する

          メタデータを付与するためには、「通貨」の右の列にフィールドを指定する必要があります。

          基本のパターンは「:」で区切ったキーと値です。
          key-one:value one
          複数追加したい場合は「|」で区切ります。
          key-one:value one|key-two:value two
          値に「,」を利用する場合は下記のように指定してください。
          key-one:"value one,123"

          各ジョブIDについて

          顧客ID(ジョブID = 1)

          顧客IDはメタデータであり、リカーリングトークン登録処理時に任意で付与することができます。
          システムでは、この顧客IDでタグ付けされたリカーリングトークンを検索し、新しい課金を行います。

          例:
          1,c5d1b760-c7db-4696-a943-8ce90c988486(顧客ID),1000,JPY

          顧客のメールアドレス(ジョブID = 2)

          このオプションを使用するには、1列目にジョブIDとして2を、2列目に顧客のメールアドレスを入力してください。
          システムでは、このメールアドレスがタグ付けされた最新のリカーリングトークンを検索し、新しい課金を行います。

          例:
           2,test@univapay.com(メールアドレス),1000,JPY

          リファレンスID(ジョブID = 3)

          リファレンスIDはメタデータであり、リカーリングトークン登録処理時に任意で付与することができます。
          システムでは、このリファレンスIDがタグ付けされた最新のリカーリングトークンを検索し、新しい課金を行います。

          例:
           3,AB0001(リファレンスID),1000,JPY

          リカーリングトークンID(ジョブID = 4)

          リカーリングトークン作成時に当システムで自動的に発番されるIDを用います。
          システムでは、このIDを持つリカーリングトークンを検索し、新しい課金を行います。

          例:
           4,11ecc509-cc27-28fe-9283-033858e9ed30(リカーリングトークンID),1000,JPY

          サンプルファイル

          csvcharges-sample.csv

          ※異なるジョブの指定を同じCSVファイルにまとめることも可能です

          1,c5d1b760-c7db-4696-a943-8ce90c988486,3000,JPY
          2,test001@test.com,2500,JPY
          3,AB00001,1000,JPY
          4,11ecc509-cc27-28fe-9283-033858e9ed30,500,JPY

          決済結果のダウンロード

          CSV課金完了後、管理画面から結果ファイルをダウンロード可能です。
          ファイルの内容(ヘッダー)は下記となります。

          検索コマンド,検索パラメータ,リクエスト金額,リクエスト通貨,メタデータ,課金ステータス,課金金額,課金通貨,課金ID,エラーメッセージ

          3,AB00001,1000,JPY,metadata,SUCCESSFUL,1000,JPY,11ed1a13-525e-1bea-b97b-a

          11.4.5 商品

          商品機能は加盟店さまが販売している商品の、名称や金額・課金方式について登録することができます。
          登録した商品は各決済フォームで選択・指定することでテンプレートのように使用することができます。

          ※ご利用にはオプション契約が必要になります。

          利用方法

          まず管理画面で商品を作成します。
          作成方法、各項目についてはこちらを確認して下さい。

          次に各決済フォームで登録した商品の情報を指定します。

          決済方式利用方法
          リンクフォーム・管理画面>リンクフォーム の作成画面で「商品」を有効 かつ 任意の商品を追加して保存
          ・作成時に指定した商品コードをパラメータに追加
          詳細はこちら
          ウィジェット・インラインフォーム作成時に指定した商品コードをパラメータに追加
          詳細はこちら
          API非対応

          複数商品の利用について

          この機能では、一度の決済で複数の商品を処理できます。
          ただ、同時に決済できる商品の種類には利用する決済フォームごとに制限があります。

          決済方式可能な利用方法
          リンクフォーム都度課金商品同士の複数追加
          都度課金商品と定期課金商品(1つまで)の複数追加
          定期課金商品同士の複数追加 ※開発中
          ウィジェット・インラインフォーム都度課金商品同士の複数追加

          パラメータで利用する場合の注意点

          • 複数の商品を同時に指定する場合は「,」(カンマ)で区切って下さい。
          • 商品のパラメータを指定する場合は、app-id,checkoutを指定する必要があります。
          • 商品に含まれる情報をパラメータで別途指定すると商品の情報より優先されます。
            ex) amount や定期課金の場合 period
          • 商品に含まれない情報であればその他パラメータで併用可能です。
            ex) 初回0円の定期課金を作成する際はcvv-authorizeの指定が必要です。
          • 仮売上を行いたい場合はcaptureを併用して指定してください。

          11.4.6 処理結果のメール通知

          テンプレートでは、決済メールテンプレートの作成・編集ができます。

          テンプレートを作成しない場合は、決済システム側のデフォルトの決済完了メールが送信されます。
          別ページに例を記載していますが、その他メールの内容についてはテストモードで決済をすることで確認できます。

          11.4.7 ウェブフック

          本サービスで発生する各種イベントの結果は「ウェブフック」として、それぞれの指定先URLにHTTP POSTメソッドで送信されます。

          ウェブフックは、管理画面>ウェブフック>ウェブフック追加 から設定できます。
          複数のイベントで同じURLを、チェックボックスで指定することも可能です。

          作成したウェブフックのURL、Authorizationヘッダー、トリガーは、後から変更することもできます。

          ※通知内容の各オブジェクトの説明、ウェブフック情報の取得・変更処理のAPIについてはこちら

          注意事項

          ウェブフックはベストエフォートのため、通知の成功や通知速度を保証するものではありません。
          決済の結果を短時間で加盟店さまのページで次の処理を行いたい場合は、APIのリクエストで課金情報の取得(課金:GET)、もしくはウィジェットのパラメータに記述を追加することでコールバックのイベントをリアルタイムで受け取ることを推奨します。

          ウェブフックの失敗後の挙動

          ウェブフックの通知が失敗した場合、返却されたエラーコードによってリトライを行います。
          失敗により停止したウェブフックは管理画面・もしくはAPIで再開する必要があります。

          リトライ間隔は、1回目は1分でその後指数関数的に増加※し、最大は15分です。
          ※1分、2分、4分、8分、、と間隔が伸びていくこと

          レスポンスステータスコード処理
          2xx成功のためリトライしない
          3xxリトライせず、失敗後即停止する
          4xx、500、501、502初回含む最大10回のリトライを行い、最大回数に達すると停止する
          5xx(500-502以外)
          ※当社側、加盟店さま側の3秒以上のレスポンスのタイムアウト時含む
          初回含む最大10回のリトライを行い、最大回数に達しても停止しない
          ※ 加盟店さま側で3秒以内に200のレスポンスを返さないと、当社側で失敗と判断してリトライを実行します。
          この時加盟店さまが受け取れているかどうかは判断できない為、3秒以内にレスポンスを返すよう構築してください。
          また、レスポンスを返した後に以降の動作を行ってください。

          ウェブフック失敗・停止時のお知らせ機能

          管理画面より、ウェブフックが失敗・停止した際にメール通知を受け取る設定ができます。

          必要な場合は、管理画面>一般設定>一般>通知 の「ウェブフック」の各項目を有効にしてください。

          イベント名の一覧

          ※イベントごとに取得できる情報の一覧やパラメータの説明、ステータスについては各リソースタイプのリンク先よりご確認ください。

          イベント名通知の契機管理画面でのトリガー名リソースタイプ
          charge_updated都度の課金申込が完了し、ステータスが
          authorized(オーソリ済)
          awaiting(入金待ち:銀行振込やコンビニ決済で発生)
          のいずれかに更新された時
          課金情報/ステータスの更新課金
          charge_finished都度の課金処理が完了し、ステータスが
          canceled(返金済み)
          error(エラー)
          failed(失敗)
          successful(成功)
          のいずれかに更新された時
          課金課金
          subscription_payment定期課金の課金が成功した時定期課金成功定期課金
          subscription_completed回数または総額を指定した定期課金の、すべての支払が完了した時
          (または分割払いが選択された場合、charge_finishedと並行)
          定期課金完了定期課金
          subscription_failure定期課金が失敗し、ステータスが
          unverified(待機中:定期課金を作成し、初回課金を待機中)
          unconfirmed(作成失敗:初回課金に失敗し、定期課金が稼働していない)
          unpaid(リトライ待ち)
          のいずれかに更新された時
          定期課金失敗定期課金
          subscription_canceled定期課金のステータスが
          canceled(永久停止:リクエストで移行し再開不可)
          に更新された時
          定期課金永久停止定期課金
          subscription_suspended定期課金のステータスが
          suspended(一時停止:管理画面で「一時停止」ボタンを押下、リトライ回数の超過、リクエストのいずれかで移行)
          に更新された時
          定期課金一時停止定期課金
          subscription_created新しい定期課金リソースのレコードが作成された時定期課金作成定期課金
          token_createdトークンが作成された時トークン作成トランザクショントークン
          token_updatedトークンが更新された時トークン更新トランザクショントークン
          token_cvv_auth_updatedトークンのdata.cvv_authorized.statusが更新された時。CVV認証ステータス更新トランザクショントークン
          refund_finished返金(Refund)が完了
          successful(成功)
          failed(失敗)
          返金返金
          recurring_token_deletedリカーリングトークンが削除された時リカーリングトークン削除トランザクショントークン
          token_replacedリカーリングトークンが更新された時リカーリングトークン更新トランザクショントークン
          cancel_finishedキャンセルの状態が
          error(エラー)
          failed(失敗)
          successful(成功)
          になった時
          キャンセル完了キャンセル
          customs_declaration_finishedWeChat Pay(オンライン)の三単合一における「税関申告」が完了税関申告完了

          12. 利用方法

          本サービスには、大きく分けて2通りの利用方法があります。
          いずれの方法でも初期設定が必要です。

          ①本サービスと商用サイトとを連携せずに利用する

          本サービスの管理画面を用いて、決済金額を加盟店さまにて設定し、作成したフォームのURLを消費者に提供することが可能です。
          上記の運用方法の場合は、こちらをご覧ください。

          ②本サービスと商用サイトとを連携する

          本サービスは、プログラムを記述することでオンライン上にある加盟店さまの商用サイトと連携することが可能です。
          予め、システム連携先さまによって、簡易な設定のみで利用可能となっている場合もあります。

          具体的には、以下のよう「初回決済(トークン化)のリクエスト方法」と「決済結果の取得方法」を設計・開発することを本サービスでは「連携」と定義しています。

          初回決済(またはトークン化)のリクエスト方法

          の3通りのインターフェイスを用意しています。詳しくはリンク先を参照してください。

          PCI-DSSに準拠している加盟店さまの場合、APIに対して直接カード情報を送信して決済することも可能です。

          決済結果の取得方法

          決済の完了後には、ウェブフックやAPIへのリクエストで結果を取得できます。

          ただし、ウェブフックによる結果取得はあくまで簡易的なもので、到達を保証するものではありません。エラーの種類によってはリトライを実行します。詳細はこちらをご覧下さい。
          何かしらの原因で取得できなかった場合は、APIにリクエストすることで能動的に取得することを推奨します。

          13. 返金について

          Alipay・WeChat・PayPayonline・Paidy・d払いOnlineは一部返金に対応しています。
          その他の決済手段は対応していません。

          決済手段によって異なります。
          以下を参照してください。

          決済手段
          返金の可否
          クレジットカード決済
          約半年(約180日)
          Alipay
          1年
          Wechat
          半年(180日)
          PayPayonline
          1年
          Paidy
          1年
          d払いOnline
          半年(180日)

          以下のような原因が考えられます。

          失敗

          • カード会社側で調査中
          • チャージバックが確定している

          エラー

          • リクエストした返金金額が課金金額を上回っている
          • タイムアウト(通信エラー)
          • 一部返金に対応していない決済サービスで一部返金をした
          • 返金期限を過ぎている

          保留

          クレジットカード決済で、接続先が海外の場合、返金に1~2週間ほどかかる場合があります。
          処理が完了したら「成功」「失敗」に変わりますので、しばらくお待ちください。

          返金の受付は完了しましたが、処理は完了していない状態です。

          返金処理には1~2週間ほどかかる場合がありますので、しばらくお待ちください。

          課金時と返金時の通知メールは、同じメールテンプレート種別「決済完了通知」が送信されます。

          メールテンプレートを作成する場合、パラメータ${transaction_type}を使用することで、処理によって自動で「課金」もしくは「返金」とメール表記を切り替えることが可能です。

          例)件名が「${transaction_type}のお知らせ」の場合
          課金時:「課金のお知らせ」
          返金時:「返金のお知らせ」

          メールテンプレートを作成せずデフォルトのメールテンプレートを使用する場合は、処理によって「課金」または「返金」にメール表記が切り替わります。

          メールテンプレートのデフォルト内容は、利用ガイド『テンプレートの種類』を参照してください。

          14. 2023

          12月 5, 2023

          Backend/Frontend

          10.13.5

          NEW 管理画面の、定期課金の詳細画面で「次回課金日」に月末を指定かつ「月末に固定」をONに指定すると、サイクルが1か月以上の場合のみ、課金日を月末に固定できるようになりました

          11月 29, 2023

          Backend/Frontend

          10.13.0

          NEW 定期課金のリンクフォームの作成時に使えるパラメーターのフィールドに"terminationMode"を追加しました
          値に"on_next_payment"を指定すると、停止リクエストを送信した場合、次回の支払直前に決済データの変更が行われ、webhookが実行されます
          送信を省略した場合、デフォルト値"immediate"が適用され、即時実行されます
          このフィールドは、リンクフォームのみ有効です

          11月 16, 2023

          Backend

          10.12.0

          UPDATE APIリクエストで、作成済みのリカーリングトークンを使い、商品(通常課金商品/定期課金商品)を指定した課金を行えるようになりました

          11月 10, 2023

          Backend/Frontend

          10.9.2

          NEW リンクフォームで通常課金商品と定期課金商品商品を同時に指定し、合算して決済できるようになりました(ジェネレータには今後実装予定)

          UPDATE 管理画面で、定期課金に登録された消費者のメールアドレスを編集できるようになりました

          10月 6, 2023

          Backend/Frontend

          10.9.1

          NEW APIリクエストで定期課金を作成するとき、次回課金日を1ヵ月以上先に指定できるようになりました

          UPDATE 管理画面の決済フォームのジェネレータで、銀行振込とコンビニ決済の支払い期限(日/時間)が指定できるようになりました(ウィジェット/インラインフォーム/リンクフォームURL)

          UPDATE 管理画面の、店舗>決済フォーム>リンクフォーム設定の言語から「自動」(消費者のブラウザ設定に合わせた言語が自動で表示される設定)を指定できるようになりました

          UPDATE ウィジェット/インラインフォームのパラメータ data-installment-plan と data-installment-qty は使用不可となりました

          9月 29, 2023

          Backend/Frontend

          10.8.1

          NEW APIリクエストで定期課金を作成するとき、初回課金金額を選択する仕様に変更し、初回課金額0円 かつ 課金日を基準としたサイクルの定期課金を作成できるようになりました

          UPDATE 管理画面の、一般設定>一般>通知>決済に「定期課金イベント発生時に通知」の項目を追加しました

          TWEAK 管理画面の商品作成画面に、課金のシミュレーションを追加しました

          9月 12, 2023

          Frontend

          10.7.1

          NEW 管理画面の、店舗>決済フォーム(リンクフォーム/ウィジェット/インラインフォーム)および通知メールテンプレートに、「中国語(簡体字)」を追加しました

          9月 5, 2023

          Backend/Frontend

          10.6.0

          TWEAK 管理画面の、リンクフォーム作成画面とジェネレータ(ウィジェット/インラインフォーム)に、定期課金のシミュレーションを追加しました

          UPDATE 管理画面の、リンクフォーム作成画面で、作成済のリンクの種類(通常課金/定期課金)を変更できるようになりました

          NEW 管理画面の、ジェネレータを利用するとき、簡体字中国語を選択できるようになりました

          TWEAK ウィジェット出力リクエスト時のパラメータで、課金の完了後に、元あったウィジェット表示用のボタンを消す設定が可能になりました

          8月 22, 2023

          Backend

          10.5.0

          NEW APIリクエストで定期課金を作成するとき、リカーリングトークンを同時に作成できるようになりました

          8月 2, 2023

          Backend/Frontend

          10.4.1

          TWEAK 管理画面でジェネレータを利用するとき、デフォルトのCVV認証をONにしました

          UPDATE 決済フォームに表示する分割回数を、パラメータで指定できるようになりました(ウィジェット/インラインフォーム)

          7月 26, 2023

          Backend

          10.4.0

          NEW Alipay+Online/Alipay Online/PayPayOnlineで、課金ごとのリダイレクトURLをAPIリクエスト時に指定できるようになりました

          6月 27, 2023

          Backend

          10.3.0

          UPDATE 定期課金失敗後のリトライを「翌日固定」から「サイクル日数÷リトライ回数」に変更しました
          これにより、定期課金のリトライ感覚を任意で設定できるようになりました

          6月 19, 2023

          Backend/Frontend

          10.2.0

          FIX リンクフォームで発生していた、コンビニ決済の不具合を修正しました

          UPDATE 管理画面のリカーリングトークン情報の画面から、課金を行うことができるようになりました

          6月 12, 2023

          Backend/Frontend

          10.1.1

          NEW 管理画面のHTMLジェネレータで、商品コードを利用できるようになりました

          FIX APIリクエストで仮売上の分割決済をキャプチャする際に、分割のリクエストが送信されるように修正しました

          FIX モバイルのAlipay Online決済の不具合を修正しました

          5月 30, 2023

          Backend

          10.1.0

          FIX リンクフォームでの、Paidy決済の不具合を修正しました

          UPDATE セキュリティコード認証(カード情報登録)で発生した1円オーソリに対し、キャプチャするボタンを管理画面で非表示にし、APIでも受け付けないよう変更しました

          5月 12, 2023

          Backend/Frontend

          10.0.3

          UPDATE APIやフォーム類で、分割払いと回数指定定期課金が併用して利用できるようになりました

          UPDATE APIやフォーム類で、定期課金で指定できるサイクルに選択肢が増えました

          UPDATE 上記が、管理画面のジェネレータでも指定できるようになりました

          UPDATE コンビニ決済申込の通知メールで、支払期限の時刻まで表示するようになりました

          UPDATE 定期課金の次回課金日を999日後まで指定できるようになりました

          5月 2, 2023

          Backend/Frontend

          9.17.0

          NEW 管理画面上で、ウェブフックIDが確認できるようになりました

          FIX 回数指定タイプの、定期課金の不具合を修正しました

          4月 25, 2023

          Frontend

          9.16.0

          NEW 管理画面のURLコード生成ジェネレータで、自動リダイレクト設定ができるようになりました(リンクフォーム)

          NEW 管理画面で、決済のメタデータに商品名が追加されました

          4月 17, 2023

          Backend

          9.14.2

          NEW 加盟店の返金可否を設定できるようになりました(プラットフォーム単位)

          4月 12, 2023

          Frontend

          9.14.1

          NEW 管理画面で、ウェブフックの通知履歴が過去1か月分確認できるようになりました

          4月 12, 2023

          Backend

          9.14.0

          FIX Alipay+Onlineの決済で予期しないエラーが発生する不具合を修正しました

          4月 10, 2023

          Frontend

          9.13.0

          TWEAK 管理画面で、課金IDなどの各IDを短縮表示するようになりました

          NEW ウィジェットで、カスタム項目が利用可能になりました

          3月 13, 2023

          Backend/Frontend

          9.12.1

          FIX CSV課金で発生した不具合を修正しました

          FIX インラインフォームの不具合を複数修正しました

          3月 6, 2023

          Backend/Frontend

          9.12.0

          UPDATE 管理画面の決済情報検索で、トランザクショントークン作成時に付与したメタデータを検索キーに指定できるようになりました

          2月 21, 2023

          Backend/Frontend

          9.11.1

          NEW 管理画面で、決済情報のCSVデータがダウンロード可能になりました

          UPDATE ウィジェット/インラインフォームで、タグ記述による商品コードの指定が可能になりました

          UPDATE セキュリティコード認証を行った際にwebhookを送信できるようになりました

          15. トランザクショントークン

          15.1 トランザクショントークン - 概要

          決済情報と消費者に関する個人情報を取得する為のリソースです。
          課金(Charge)定期課金を作成する為にはトランザクショントークンが事前に作成されている必要があります。

          決済を行うシステムの PCI DSS 準拠

          決済を行うシステムが PCI DSS に準拠していない場合、カード番号のような保護が必要な情報を直接取得することはできません。
          代わりにAndroidのモバイルウィジェットや、本サービスが提供するブラウザウィジェット や 決済端末 など当社の提供するソリューションを使用する必要があります。

          トークンの種類

          • one_time – ワンタイムトークン
          • subscription – 定期課金トークン
          • recurring – リカーリングトークン

          ワンタイムトークン

          1回だけ課金を作ることができ有効期間は作成から5分間です。
          大量の課金を処理するために並行して複数のワンタイムトークンを作ることができますが、一定期間内に同一のカードで課金できる回数には制限があります。
          課金のオーソリ(仮売上)と、後日に売上を確定させるキャプチャ(実売上)にも使用することができます。
          キャプチャは指定した日付に自動的に行うことや任意のタイミングでAPIを呼び出して行うことができます。
          キャプチャする金額はオーソリを行った金額以下である必要があります。
          課金のオーソリを行うには、オーソリに対応したゲートウェイ(接続先)を使用する必要があります。
          詳しくは課金(Charge)を参照してください。

          定期課金トークン

          一定のスケジュールで顧客に請求をする必要がある場合、定期課金トークンを使用することをお薦めします。
          定期課金を作成することができ、定期課金では課金の間隔、初回金額、定期課金金額、開始日を指定することができます。
          このトークンの有効期間は作成から5分間です。
          定期課金はキャンセルされるまで期限なしで継続されます。
          定期課金は、一定期間をかけて支払いをする為の分割払いのプランを作成することができます。
          詳しくは定期課金リソースを参照してください。
          当システムでは同一カード番号で定期課金トークンを作成できるのは1つまでのため、5分以内に同一カード番号を入力して送信するとエラーが発生します。
          定期課金トークンに対して課金されると再度作成が可能になります。

          リカーリングトークン

          一度決済したクレジットカードで、任意のタイミングで再び決済を行いたい場合はリカーリングトークンの作成をお勧めします。
          リカーリング(再利用可能)トランザクショントークンを作成するには、アカウントに対して作成権限が必要となります。
          審査によって、トークンを無制限(infinite)利用できるか、制限付き(bounded)で利用可能かが決まります。
          無制限の場合は、そのトークンは任意のタイミングで課金を作成することができます。
          制限付きの場合は、そのトークンは一定期間に1回しか課金を作成することができません。
          トークンが作成されると、その個人情報は UnivaPay のプラットフォーム上に安全に保管され、変更することはできなくなります。
          PATCH(変更)可能な情報は、email / metadataとセキュリティコード(CVV)のみです。
          CVVはリカーリングトークンを使用している場合で、課金金額がストア設定で指定したしきい値を超えた場合に必要となります。
          これは設定された上限を超える追加の請求について、消費者の同意を得る為の仕組みです。
          作成後5分以内にトークンが使用されない場合、CVVは自動的に期限切れになり、構成によっては、トークンのCVV値で再度更新する必要がある場合があります。

          セキュリティコード(CVV)認証

          リカーリングトークンによるクレジットカード払いでのみ利用できる機能です。
          有効なクレジットカードとそれに対応するCVVを事前に承認して、後で支払いに利用できるようにします。
          たとえば、消費者がカード情報を保存すれば、その後いつでもそれを使って購入することができます。
          デフォルトでは、data.cvv_authorize.enabled=true でない限り、この機能は有効になっていません。
          内部的には、システムがゲートウェイに認証リクエスト(1円の仮売のリクエスト)を行い、これには少なくとも数秒かかる場合があります。
          これが完了すると、リカーリングトークンはそのゲートウェイに承認済みとしてロックされ、 cvv_authorize.status は current に更新されます。
          トークンは、承認プロセスが正常に完了するまで課金を作成することはできません。
          課金作成を行う前に、常にステータスが current であることを確認することを推奨します。
          それ以外の場合は、続行する前にCVV値を更新してください。
          なんらかの理由でゲートウェイが加盟店からリンク解除されている場合、トークンは「非アクティブ」(inactive)状態に移行するため、CVV値をトランザクショントークンのUPDATEで更新する必要があります。
          その後、自動的に認証が試行されます。

          支払い手段

          トランザクショントークンは以下の支払い手段を持ちます。

          • card – クレジットカード決済
          • paidy – Paidy決済
          • online – オンラインモバイル決済
            ワンタイムトークンのみ
          • konbini – コンビニ決済
            リカーリングトークンでは使用不可
          • bank_transfer – 銀行振込決済

          支払手段ごとに異なる支払い情報が必要となります。
          詳細は、トランザクショントークンの作成 のdataパラメータを参照ください。

          “transaction”オブジェクトのデータ構造

          フィールドデータ型備考
          idUUIDトランザクショントークンのID
          store_idUUID店舗ID
          契約時に自動付与
          emailstring支払いの為の消費者のメールアドレス
          ip_addressstring消費者のデバイスのIPv4アドレス
          typestringトークンが作成できる課金の種類
          one_time / subscription / recurring
          activebooleanトークンが利用済みか無効かどうか
          ※typeがone_timeかsubscriptionの場合
          usage_limitstringtypeがrecurringの場合、このトークンが使用可能な間隔
          存在し得る値:
          daily
          weekly
          monthly
          annually
          null(トークンの利用制限が無い場合)
          modestringどのモードでトークンが作成されたか
          トークン作成時に使ったアプリケーショントークンにより決定
          存在し得る値:
          live(本番モード)
          test(テストモード)
          payment_typestringこのトークンが保持する支払い手段の種類
          metadataobjectトランザクショントークンに保存されているメタデータ
          created_onISO-8601トランザクショントークンの作成日時
          updated_onISO-8601トランザクショントークンの更新日時
          last_used_onISO-8601トランザクショントークンの最終使用日時
          data.card.cardholderstringカードの所有者の名前
          data.card.exp_monthnumber有効期限(月)
          data.card.exp_yearnumber有効期限(年)
          data.card.last_fourstringカード番号の最後4桁
          data.card.card_binstringカード番号のBIN番号
          data.card.card_typestringカードのタイプ
          data.card.countrystringカードの発行国
          data.card.brandstringカードブランド
          存在し得る値:
          visa
          mastercard
          jcb
          diners_club
          unionpay
          american_express
          maestro
          discover
          unknown
          data.card.categorystringカードのカテゴリー
          data.card.issuerstringカード発行会社
          data.card.sub_brandstringカードのサブブランド
          data.billing.line1string or nullカードの請求先住所1
          data.billing.line2string or nullカードの請求先住所2
          data.billing.statestring or nullカードの請求先住所の州 / 地域 / 都道府県
          data.billing.citystring or nullカードの請求先住所の市町村区
          data.billing.country
          string (ISO Alpha-2)
          カードの請求先住所の国
          data.billing.zipstring or nullカードの請求先住所の郵便番号
          data.billing.phone_number.country_codestring or null請求先住所の電話番号の国コード
          data.billing.phone_number.local_numberstring請求先住所の電話番号
          data.cvv_authorize.enabledbooleanセキュリティコード認証機能が有効かどうか
          data.cvv_authorize.statusstring認証のステータス
          存在し得る値:
          保留(pending)
          処理中(current)
          失敗(failed)
          非アクティブ(inactive)
          data.cvv_authorize.currency
          string (ISO-4217)
          手動で更新された場合に認証を行うように要求された通貨
          data.cvv_authorize.charge_idstring(UUID)認証に使用された課金情報のID
          data.cvv_authorize.credentials_id
          string(UUID)
          認証に使用された資格情報ID
          トークンはこの資格情報にロックされ、非アクティブ化するとトークンは非アクティブ(inactive)状態に変わる
          data.gatewaystring支払い処理を行ったゲートウェイ
          QRコード支払いの場合に利用可能
          data.brandstringブランド
          onlineとbank_transfer支払いの場合に利用可能
          data.issuer_tokenstringイシュアトークン
          payment_typeがonlineの場合
          data.issuer_token_payloadstringイシュアトークンのペイロード
          payment_typeがonlineの場合
          data.call_methodstringクライアントが要求した実行方法
          存在し得る値:
          HTTP get
          HTTP post
          sdk MiniApp
          app Native App
          web in-app browser H5
          data.user_identifierstring一部のブランドで使用されている消費者固有の識別子
          data.os_typestringモバイルデバイスのOS
          data.customer_namestring顧客名
          コンビニ払いの場合に利用可能
          data.phone_number.country_codestring or null電話番号の国コード
          data.phone_number.local_numberstring電話番号
          data.convenience_storestring支払いを行うコンビニエンスストア名
          コンビニ払いの場合に利用可能
          data.expiration_periodstring (ISO-8601 Duration)支払期間
          コンビニ払い / 銀行振込の場合に利用可能
          data.expiration_time_shiftstring (ISO-8601 Duration)支払期限の時間
          コンビニ払い / 銀行振込の場合に利用可能
          data.match_amountstring振込金額のマッチングアルゴリズム
          銀行振込の場合に利用可能
          data.bank_codestring振込支払先の銀行コード
          銀行振込の場合に利用可能
          data.bank_namestring振込支払先の銀行名
          銀行振込の場合に利用可能
          data.branch_codestring振込支払先の支店コード
          銀行振込の場合に利用可能
          data.branch_namestring振込支払先の支店名
          銀行振込の場合に利用可能
          data.account_numberstring振込支払先の口座番号
          銀行振込の場合に利用可能
          data.account_holder_namestring振込支払先の口座名義
          銀行振込の場合に利用可能

          イシュアトークン

          15.2 トランザクショントークン - リクエスト

          15.2.1 トランザクショントークン - CREATE

          トランザクショントークン CREATE リクエストは、クレジットカード情報を加盟店サイト内に入力させ、本サービスのAPIに送信します。
          このリクエストを行うには PCI DSS に準拠している必要があります。
          PCI DSSに準拠していない場合はこのリクエストを行うことはできませんのでご注意ください。
          PCI DSSに準拠しておりトランザクショントークン CREATE リクエストの利用をご希望の場合は、弊社までご連絡ください。

          トランザクショントークンオブジェクトに対するCREATEリクエストには以下が必要です。(括弧内は入力箇所)
          トランザクショントークンを作成した後はトランザクショントークンIDを指定して課金 / 定期課金を行ってください。

          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request POST 
          --url https://api.univapay.com/tokens 
          --header 'Authorization: Bearer {secret}.{jwt}' 
          --header 'Content-type: application/json' 

          利用できるパラメータ

          リクエストのbodyに含めることができるパラメータは以下です。

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          payment_typestring 支払い手段を参照
          typestring トークンの種類を参照
          特定の支払い手段により種類が制限される場合あり
          繰り返しに設定されていて、アカウントに無限に課金可能なトークンを作成する権限がない場合は、usage_limitパラメーターを指定する必要あり
          usage_limitstring このトークンがリカーリングトークンの場合に使用できる頻度
          無限に課金可能なリカーリングトークンを作成する権限がある場合は空白可
          emailstring メールアドレス
          ※オンライン決済は任意
          ip_addressstring ※we_chat_online(web, http_get)の場合
          消費者のデバイスのIPv4アドレス
          metadataobjectメタデータを参照
          metadata.univapay-reference-idstring (フリーフォーマット)任意の値
          metadata.univapay-customer-idstring (UUID)顧客ID
          dataobject支払い手段ごとに必要な情報が異なり、下記記載箇所よりそれぞれ詳細のパラメータを参照
          card(カードデータ), konbini(コンビニ払いデータ), online(オンライン払いデータ)のいずれか

          カードデータ

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          data.cardholderstring クレジットカードの所有者の名前
          data.card_numberstring カード番号
          data.exp_monthstring 有効期限(月)
          data.exp_yearstring 有効期限(年)
          data.cvvstring CVV値
          data.line1string 住所1
          data.line2string 住所2
          data.statestring 住所の州/地域/都道府県
          data.citystring 住所の市町村区
          data.countrystring 国 (ISO 3166-1形式のアルファベット2文字の国コード)
          data.zipstring 郵便番号
          data.phone_number.country_codestring 電話番号の国コード
          data.phone_number.local_numberstring 電話番号
          cvv_authorize.enabledbooleanセキュリティコード認証機能が有効かどうか
          デフォルト値:false
          cvv_authorize.currencystring (ISO-4217)認証を行う通貨
          デフォルト値:加盟店の基本通貨

          コンビニ払いデータ

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          data.customer_namestring消費者名
          data.phone_number.country_codestring電話番号の国コード
          日本の番号のみ可能
          data.phone_number.local_numberstring消費者の電話番号
          data.convenience_storestring消費者が支払いを選択したコンビニエンスストア
          seven_elevenfamily_martlawsonmini_stopseico_martpay_easycircle_ksunkusdaily_yamazakiyamazaki_daily_storeのいずれか
          data.expiration_periodstring (ISO-8601 Duration)支払いの有効期限(作成日から最短30分最大60日間)
          デフォルトの値:30日間
          例:P7D
          課金:Createで支払い期限日時を指定した場合はそちらを優先
          data.expiration_time_shiftstring (ISO-8601 Time with Timezone)expiration_periodを考慮した上で設定する時間
          例:expiration_periodを追加した後の有効期限が2023-06-01T15:00:00+09:00の場合、
          expiration_time_shiftを09:00:00+09:00と設定すると有効期限は2023-06-01T09:00+09:00
          ※このフィールドが設定されている場合、expiration_periodは1日以上
          ※コンビニ決済の場合のみ利用可能
          ※セブンイレブン、セイコーマート/他支払(サークルK/サンクス/ペイジー)は時刻指定が利用できないためこのフィールドは無効

          オンライン払いデータ

          オンライン払いを選択した場合、課金を作成後QR事業者側の支払い画面を呼び出すためのURLが必要です。
          イシュアトークンを取得するリクエストを別途送る必要があります。
          詳しくはこちらをご覧ください。

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          data.brandstring 使用する支払いゲートウェイ
          alipay_online(Alipay China),alipay_plus_online(Alipay+),pay_pay_online(Pay Pay),we_chat_online(WeChat Pay),d_barai_online(d払い)のいずれか
          data.call_methodstring クライアントが要求した実行方法
          http_gethttp_postsdkwebappのいずれか
          sdk:ペイメントプロバイダーが提供するSDKで直接使用すること
          web:特定のAPIを拡張した特殊なブラウザ環境で直接使用すること
          app:ペイメントプロバイダーが提供するSDKのネイティブアプリ環境での利用
          http_getまたはhttp_postを使用すると、issuer_tokenを新しいブラウザウィンドウまたは適切な対応するHTTPメソッドのiframe内で直接実行することが可能

          以下のブランドでは、以下の呼び出し方法に対応
          – alipay_online:http_gethttp_get_mobilesdk (miniapp), app
          – alipay_plus_online:http_gethttp_get_mobilesdk (miniapp), app
          – pay_pay_online:http_post
          – we_chat_online:http_get (H5), sdk (miniapp), app (in-app), web (official account)
           ※http_get (H5)の場合、リクエスト前に利用予定のウェブブラウザのドメインをサポートデスクへ連絡する必要あり
          – d_barai_online:http_post
          data.user_identifierstring 通常、ペイメントゲートウェイアプリケーションによって提供される、消費者のデバイスを一意に識別することができる消費者固有の識別子
          不正行為を防止するために一部の決済事業者が要求しているもの

          これらのコールメソッドの以下のブランドでは、消費者固有の識別子の提供が必要
          – we_chat_onlinesdk (miniapp), web (official account)
          data.os_typestring 使っているモバイルデバイスのOS
          android,iosのいずれか

          これらのコールメソッドの以下のブランドでは提供が必要
          – alipay_plus_onlinehttp_get_mobileapp

          銀行振込支払データ

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          data.brandstring 使用する支払いゲートウェイ
          aozora_bank GMOあおぞらネット銀行のみ指定可能

          Bodyの記述例

          curl --request POST 
          --url https://api.univapay.com/tokens 
          --header 'Authorization: Bearer {secret}.{jwt}
          ' 
          --header 'Content-type: application/json' 
          --data "{
          "payment_type": "card",
          "email": "test@test.com",
          "type":"recurring",
          "data": {
              "cardholder": "TARO YAMADA",
              "card_number": "4000020000000000",
              "exp_month": "12",
              "exp_year": "2099",
              "cvv": "123",
              "line1": "123 abc st",
              "line2": "apt 123",
              "state": "OR",
              "city": "Portland",
              "country": "US",
              "zip": "12345",
              "phone_number": {
                  "country_code": "1",
                  "local_number": "8029854583",
              "cvv_authorize.enabled":"true"
              },
                  "currency": "JPY"
              }
          }"

          レスポンス

          下記はBodyの記述例でリクエストした場合の例です。

          CodeとHeader

          • Code:201
          • Header:Content-Type: application/json

          Body

          {
              "id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "email": "test@test.com",
              "payment_type": "card",
              "active": true,
              "mode": "test",
              "type": "recurring",
              "usage_limit": null,
              "confirmed": null,
              "metadata": {},
              "created_on": "2024-06-25T03:58:49.321896Z",
              "updated_on": "2024-06-25T03:58:49.321896Z",
              "last_used_on": null,
              "data": {
                  "card": {
                      "cardholder": "TARO YAMADA",
                      "exp_month": 12,
                      "exp_year": 2099,
                      "card_bin": "400002",
                      "last_four": "0000",
                      "brand": "visa",
                      "card_type": "credit",
                      "country": "US",
                      "category": null,
                      "issuer": "RIVER VALLEY CREDIT UNION",
                      "sub_brand": "none"
                  },
                  "billing": {
                      "line1": "123 abc st",
                      "line2": "apt 123",
                      "state": "OR",
                      "city": "Portland",
                      "country": "US",
                      "zip": "12345",
                      "phone_number": {
                          "country_code": 1,
                          "local_number": "8029854583"
                      }
                  },
                  "cvv_authorize": {
                      "enabled": false,
                      "status": null,
                      "charge_id": null,
                      "credentials_id": null,
                      "currency": null
                  },
                  "cvv_authorize_check": {
                      "status": null,
                      "charge_id": null,
                      "date": null
                  }
              }
          }

          15.2.2 トランザクショントークン - GET

          トランザクショントークンオブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

          • 店舗ID(URLの{storeId}部分)
          • トランザクショントークンID(URLの{Id}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/tokens/{id} \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'content-type: application/json' \

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/tokens/11ef32a7-3a71-8662-803f-1bc27702eeec \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

          下記は記述例でリクエストした場合の例です。

          CodeとHeader

          • Code:200
          • Header:Content-Type: application/json

          Body

          {
              "id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "email": "test@test.com",
              "payment_type": "card",
              "active": true,
              "mode": "test",
              "type": "recurring",
              "usage_limit": null,
              "confirmed": null,
              "metadata": {},
              "created_on": "2024-06-25T03:58:49.321896Z",
              "updated_on": "2024-06-25T03:58:49.321896Z",
              "last_used_on": null,
              "data": {
                  "card": {
                      "cardholder": "TARO YAMADA",
                      "exp_month": 12,
                      "exp_year": 2099,
                      "card_bin": "400002",
                      "last_four": "0000",
                      "brand": "visa",
                      "card_type": "credit",
                      "country": "US",
                      "category": null,
                      "issuer": "RIVER VALLEY CREDIT UNION",
                      "sub_brand": "none"
                  },
                  "billing": {
                      "line1": "123 abc st",
                      "line2": "apt 123",
                      "state": "OR",
                      "city": "Portland",
                      "country": "US",
                      "zip": "12345",
                      "phone_number": {
                          "country_code": 1,
                          "local_number": "8029854583"
                      }
                  },
                  "cvv_authorize": {
                      "enabled": false,
                      "status": null,
                      "charge_id": null,
                      "credentials_id": null,
                      "currency": null
                  },
                  "cvv_authorize_check": {
                      "status": null,
                      "charge_id": null,
                      "date": null
                  }
              }
          }

          15.2.3 トランザクショントークン - LIST

          トランザクショントークンオブジェクトに対するLISTリクエストには以下が必要です。(括弧内は入力箇所)
          リクエストURLにクエリパラメータを追加することで、表示するリソースを絞り込むこともできます。
          課金 / 返金などをまとめて表示させたい場合はトランザクション:Listを推奨します。

          • 店舗ID(URLの{storeId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/tokens \
          --header 'Authorization: Bearer {secret}.{jwt}'
          すべての店舗を表示
          curl --request GET \
          --url https://api.univapay.com/tokens \
          --header 'Authorization: Bearer {secret}.{jwt}'

          利用できるパラメータ

          リクエストURLに追加できるクエリパラメータは以下です。

          フィールドデータ型備考
          fromstring (ISO-8601)指定した日付以降に作成されたトランザクショントークンを表示
          例:2024-01-23T00:00:00Z
          tostring (ISO-8601)指定した日付以前に作成されたトランザクショントークンを表示
          例:2024-01-23T00:00:00Z
          idstring (UUID)トランザクショントークンID
          short_idstringトランザクショントークンの下6桁
          typestringトランザクショントークンの種類をフィルタリング
          recurring,subscriptionのいずれか
          emailstringメールアドレスでフィルタリング
          cardholderstringトランザクショントークンに登録されたカード名義でフィルタリング
          ※決済方法がクレジットの場合のみ利用可能
          card_expnumber yyyy-MMの形式でカードの有効期限でフィルタリング
          例:2024-01
          ※決済方法がクレジットの場合のみ利用可能
          card_last_fournumberカード番号の下4桁でフィルタリング
          ※決済方法がクレジットの場合のみ利用可能
          phone_numbernumber電話番号でフィルタリング
          brandstring決済事業者のブランドでフィルタリング
          例:visaalipay_chinapay_pay_mpmseven_elevenwe_chat_onlineaozora_bank 等
          customer_idstring (UUID)`univapay-customer-id`を利用して登録されたカスタマーIDのメタデータでフィルタリング
          modestringモードでフィルタリングする
          liveまたはtest
          metadatastringメタデータでフィルタリング

          Bodyの記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/tokens \
          --header 'Authorization: Bearer {secret}.{jwt}'
          全ての店舗のトランザクショントークンを表示
          curl --request GET \
          --url https://api.univapay.com/tokens \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

          下記はBodyの記述例でリクエストした場合の例です。

          CodeとHeader

          • Code:200
          • Header:Content-Type: application/json

          Body

          {
              "items": [
                  {
                      "id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                      "email": "test@test.com",
                      "payment_type": "card",
                      "active": true,
                      "mode": "test",
                      "type": "recurring",
                      "usage_limit": null,
                      "confirmed": null,
                      "metadata": {},
                      "created_on": "2024-06-25T03:58:49.321896Z",
                      "updated_on": "2024-06-25T03:58:49.321896Z",
                      "last_used_on": null,
                      "merchant_name": "管理画面ガイド",
                      "store_name": "管理画面ガイド_TEST店舗",
                      "user_data": {
                          "cardholder_name": "taro yamada",
                          "email": "test@test.com",
                          "brand": "visa",
                          "gateway": null,
                          "service_provider": null
                      }
                  },
                  {
                      "id": "11ef2f91-5611-1c20-8699-273823d9185d",
                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                      "email": "demo@demo.com",
                      "payment_type": "card",
                      "active": true,
                      "mode": "test",
                      "type": "recurring",
                      "usage_limit": null,
                      "confirmed": null,
                      "metadata": {},
                      "created_on": "2024-06-21T05:44:33.249892Z",
                      "updated_on": "2024-06-24T07:02:18.28909Z",
                      "last_used_on": "2024-06-24T07:02:18.067656Z",
                      "merchant_name": "管理画面ガイド",
                      "store_name": "管理画面ガイド_TEST店舗",
                      "user_data": {
                          "cardholder_name": "hanako yamada",
                          "email": "demo@demo.com",
                          "brand": "visa",
                          "gateway": null,
                          "service_provider": null
                      }
                  },
          
          <中略>
          
              ],
              "has_more": true,
              "total_hits": 99
          }

          15.2.4 トランザクショントークン - UPDATE

          トランザクショントークンオブジェクトに対するUPDATEリクエストには以下が必要です。(括弧内は入力箇所)

          • 店舗ID(URLの{storeId}部分)
          • トランザクショントークンID(URLの{id}部分)
          • シークレット(Headreの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request PATCH \
          --url https://api.univapay.com/stores/{storeId}/tokens/{id} \
          --header 'Content-type: application/json' 
          --header 'Authorization: Bearer {secret}.{jwt}'

          利用できるパラメータ

          リクエストのbodyに含めることができるパラメータは以下です。

          フィールドデータ型備考
          emailstring支払いの為の顧客のメールアドレス
          cardholderstringカード名義
          metadataobjectトランザクショントークンに保存されているメタデータ
          data.cvvnumberカードのCVV
          リカーリングトークンを使用して課金を作成する際に
          RECURRING_USAGE_REQUIRES_CVV エラーがした場合に必要
          CVVだけを更新する場合はアプリケーショントークンのシークレットは不要
          data.line1string住所1
          data.line2string住所2
          data.statestring住所の州/地域/都道府県
          data.citystring住所の市町村区
          data.countrystring国 (ISO 3166-1形式のアルファベット2文字の国コード)
          data.zipstring郵便番号
          data.phone_number.country_codestring電話番号の国コード
          data.phone_number.local_numberstring電話番号

          Bodyの記述例

          curl --request PATCH \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/tokens/11efa58e-e0b7-9a02-9ca6-7788908dad3a \
          --header 'Authorization: Bearer {secret}.{jwt}'
          --data '{
          "email": "test.update@test.com",
          "data": {
              "cardholder": "TARO YAMADA",
              "card_number": "4000020000000000",
              "exp_month": "12",
              "exp_year": "2099",
              "cvv": "123",
              "line1": "11111",
              "line2": "222",
              "state": "Tokyo",
              "city": "テスト区一丁目",
              "country": "JP",
              "zip": "1234567",
              "phone_number": {
                  "country_code": "81",
                  "local_number": "08000000000"
                      }
              }
          }'

          レスポンス

          下記はBodyの記述例でリクエストした場合の例です。

          CodeとHeader

          • Code:200
          • Header:Content-Type: application/json

          Body

          {
              "id": "11efa58e-e0b7-9a02-9ca6-7788908dad3a",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "email": "test.update@test.com",
              "payment_type": "card",
              "active": true,
              "mode": "test",
              "type": "recurring",
              "usage_limit": null,
              "confirmed": null,
              "metadata": { },
              "created_on": "2024-11-18T09:24:14.584144Z",
              "updated_on": "2024-11-19T05:53:48.547425Z",
              "last_used_on": "2024-11-18T09:24:14.795465Z",
              "data": {
                  "card": {
                      "cardholder": "TARO YAMADA",
                      "exp_month": 12,
                      "exp_year": 2099,
                      "card_bin": "400002",
                      "last_four": "0000",
                      "brand": "visa",
                      "card_type": "credit",
                      "country": "US",
                      "category": null,
                      "issuer": "RIVER VALLEY CREDIT UNION",
                      "sub_brand": "none"
                  },
                  "billing": {
                      "line1": "11111",
                      "line2": "222",
                      "state": "Tokyo",
                      "city": "テスト区一丁目",
                      "country": "JP",
                      "zip": "1234567",
                      "phone_number": {
                          "country_code": 81,
                          "local_number": "08000000000"
                      }
                  },
                  "cvv_authorize": {
                      "enabled": false,
                      "status": null,
                      "charge_id": null,
                      "credentials_id": null,
                      "currency": "JPY"
                  },
                  "cvv_authorize_check": {
                      "status": null,
                      "charge_id": null,
                      "date": null
                  },
                  "three_ds": {
                      "enabled": false,
                      "status": null,
                      "redirect_endpoint": null,
                      "redirect_id": null
                  }
              }
          }

          15.2.5 トランザクショントークン - DELETE

          トランザクショントークンオブジェクトに対するDELETEリクエストには以下が必要です。(括弧内は入力箇所)
          削除した際紐づいていた定期課金などは行えなくなりますのでご注意ください。

          • 店舗ID(URLの{storeId}部分)
          • トランザクショントークンID(URLの{id}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request DELETE \
          --url https://api.univapay.com/stores/{storeId}/tokens/{id} \
          --header 'Authorization: Bearer {secret}.{jwt}'

          Bodyの記述例

          curl --request DELETE \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/tokens/11ef295d-9ead-08f2-aad1-6f74362679e5 \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

          下記はBodyの記述例でリクエストした場合の例です。

          Code

          • Code:204

          16. トランザクショントークン - GET

          トランザクショントークンオブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

          • 店舗ID(URLの{storeId}部分)
          • トランザクショントークンID(URLの{Id}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/tokens/{id} \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'content-type: application/json' \

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/tokens/11ef32a7-3a71-8662-803f-1bc27702eeec \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

          下記は記述例でリクエストした場合の例です。

          CodeとHeader

          • Code:200
          • Header:Content-Type: application/json

          Body

          {
              "id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "email": "test@test.com",
              "payment_type": "card",
              "active": true,
              "mode": "test",
              "type": "recurring",
              "usage_limit": null,
              "confirmed": null,
              "metadata": {},
              "created_on": "2024-06-25T03:58:49.321896Z",
              "updated_on": "2024-06-25T03:58:49.321896Z",
              "last_used_on": null,
              "data": {
                  "card": {
                      "cardholder": "TARO YAMADA",
                      "exp_month": 12,
                      "exp_year": 2099,
                      "card_bin": "400002",
                      "last_four": "0000",
                      "brand": "visa",
                      "card_type": "credit",
                      "country": "US",
                      "category": null,
                      "issuer": "RIVER VALLEY CREDIT UNION",
                      "sub_brand": "none"
                  },
                  "billing": {
                      "line1": "123 abc st",
                      "line2": "apt 123",
                      "state": "OR",
                      "city": "Portland",
                      "country": "US",
                      "zip": "12345",
                      "phone_number": {
                          "country_code": 1,
                          "local_number": "8029854583"
                      }
                  },
                  "cvv_authorize": {
                      "enabled": false,
                      "status": null,
                      "charge_id": null,
                      "credentials_id": null,
                      "currency": null
                  },
                  "cvv_authorize_check": {
                      "status": null,
                      "charge_id": null,
                      "date": null
                  }
              }
          }

          17. 実装ガイド

          本サービスと加盟店さまの商用サイトとを連携するための実装ガイドです。
          「はじめに」を通読の上、ご覧ください。

          17.1 ウィジェット - 概要

          ウィジェットは、消費者がカード情報を入力するためのインターフェイスで、ポップアップウインドウとして表示されるタイプのフォームです。

          ウィジェットの役割

          ウィジェットは、以下の役割を果たします。

          支払い方法の選択

          消費者に、希望の支払い方法をクリック(またはタップ)で選択させます。

          この選択画面で表示される選択肢は、ウィジェットのタグまたはコードの記述内容に依存します。なお、支払い方法を単一に指定した場合、この選択画面は省略されます。

          必須情報の入力

          選択された「支払い方法」毎に予め設定されている必須情報を、消費者に入力させます。

          入力欄はウィジェットのタグまたはコードの記述内容によって、追加することも可能です。
          詳しくはこちら

          ウィジェットで行われる処理

          選択された「支払い方法」毎に、各種処理を行います。

          一部、赤字※印の項目は申込完了後、消費者が支払いを行うのを待機します。
          誤って「決済完了」とみなさないよう、くれぐれも注意してください。

          支払い方法処理認証後の処理
          クレジットカードカード会社に対し、要求された処理(オーソリ/キャプチャ)で認証認証済みのカード情報をトークン化して決済処理

          以降、以下を<共通処理>と記載:
          JavaScriptでコールバック
          ウェブフック
          APIからの取得が可能に
          銀行振込その申込専用の振込口座を発行し、メール送信(疎通は確認しない)本サービスが振込完了の通知を受け取り次第、完了判定
          <共通処理>
          PaidyPaidyのフォームに遷移し、メールアドレスや電話番号で認証認証時点で完了判定
          <共通処理>
          オンラインモバイル各銘柄の挙動詳細はこちら本サービスが通知を受け取り次第、完了判定
          <共通処理>
          コンビニ決済支払いたいコンビニを選択し「申込」を行い、メール送信(疎通は確認しない)本サービスが支払完了の通知を受け取り次第、完了判定
          <共通処理>
          ※…加盟店さまが誤って「決済完了」とみなした場合の損害や責任は、当社では一切負いません

          ウィジェット内の表示項目

          ウィジェット内の表示項目は、設置時のパラメータによって以下を制御可能です。

          • ヘッダーテキスト
          • ヘッダー説明文
          • 支払いボタンのテキスト
          • QRコードの色(オンラインモバイルでのみ有効)
          • QRコード内のロゴ
          • 任意のフィールド(入力欄)追加

          詳しくはこちら

          ウィジェットのデザイン

          管理画面から、ウィジェットのデザインを編集可能です。

          店舗>一般>全体設定>ブランディング から、PNGまたはJPGで店舗アイコンを編集できます。
          未編集の場合は標準(デフォルト)の画像が表示されます。

          店舗>決済フォーム>ウィジェット>テーマ から、タイトル背景とメイン(タイトルバーとボタンに使用)のカラーが編集可能です。

          消費者の支払いフロー

          ウィジェットを利用した場合の決済手段ごとの支払いフローは、下記の画像付き資料を参照してください。

          消費者の支払いフロー(PDFファイル)

          17.1.1 設置 - (HTML/JavaScript)

          このページは初期設定が完了し、ウィジェットの概要が通読されていることを前提に作成しています。

          「ウィジェットの概要」で説明の通り、支払い方法の選択次第で「決済」でなく「申込」がなされる可能性があるため、このページでは、ウィジェットで行われる「決済または申込」を「処理」と表現します。

          HTMLで設置する

          ウィジェットをHTMLで設置するには、1行の<script>タグと、1つの<form>タグを用います。

          <form>タグの中には<span>要素でパラメータ(各種フィールドとその値)を記述します。

          アプリトークンは非常に長く規則性のない文字列なので、事前に管理画面でアプリトークンを控えるか、ジェネレータからのコピーを推奨します。

          サンプルコード

          以下は、「支払う」と表示されたボタンでの、1000円を決済するためのウィジェットの設置例です。

          <script src="https://widget.univapay.com/client/checkout.js"></script>
          <form action="<任意のURL>">
           <span data-app-id="<アプリトークンID>"
                data-txt="支払う"
                data-checkout="payment"
                data-amount="1000"
                data-currency="jpy"
                data-auto-submit="true"
           ></span>
          </form>

          処理完了後の動作

          処理の完了後、form action= で指定した”<任意のURL>”に対し、以下をsubmitします。

          • トランザクショントークン(data-checkout-type=“token”指定時には univapayTokenId
          • 決済番号(data-checkout-type=“payment” 指定時には univapayChargeIddata-token-type=“subscription” 指定時には univapaySubscriptionId

          処理結果によって、消費者の画面遷移をコントロールしたい場合は、これらを取得するプログラムを作成してください。

          パラメータ(基本動作)で解説の通り、data-auto-submitを利用することにより、完了ボタンを押してウィジェットを閉じた時、ウィジェットが含まれるフォームを自動でsubmitする設定も可能です。

          上記を利用して、spanタグの外側に設置したformタグのaction属性に指定したURLに遷移するようにすることも可能です。

          JavaScriptで設置する

          Javascriptでウィジェットを設定する際は、<script>タグを利用することで、HTMLファイル内にJacaScriptのコードを埋め込んでウィジェットを設置することもできます。

          サンプルコード

          以下は、「支払う」と表示されたボタンでの、1000円を決済するためのウィジェットの設置例です。

          <script src="https://widget.univapay.com/client/checkout.js"></script>
          
          <form id="payment-form" onSubmit="handleSubmit()">
            <button id="univapay-payment-checkout">
             支払う
            </button>
          </form>
          
          <script>
            var checkout = UnivapayCheckout.create({
              appId: "<TOKEN>",
              checkout: "payment",
              amount: 100,
              currency: "jpy",
              cvvAuthorize: true,
            });
          
          
            var button = document.querySelector("#univapay-payment-checkout");
            button.onclick = function () {
              checkout.open();
            };
          
            function handleSubmit() {
            event.preventDefault();
          };
          </script>

          まず、ウィジェットを含むページに次の行をHTMLでの設置と同様に含める必要があります。

          <script src="https://widget.univapay.com/client/checkout.js"></script>

          HTMLでの設置とは異なり、自動的にページ上にボタンは作成されませんので、<form>タグと<button>タグで送信するための記述をします。
          submitイベントが発火に反応して、onSubmitに指定された関数”handleSubmit()”を呼び出します。

          <form id="payment-form" onSubmit="handleSubmit()">
            <button id="univapay-payment-checkout">
             支払う
            </button>
          </form>
          
          <script>
          <!--
          タグ内にJavaScriptの記述をします
          内容は以下で説明
          -->
          </script>

          次に、UnivapayCheckout.createを呼び出す記述をします。
          例えば、1000円の支払いを処理するウィジェット・オブジェクトを作成するには、以下を記述する必要があります。

          var checkout = UnivapayCheckout.create({
            appId: "<TOKEN>",
            checkout: "payment",
            amount: 1000,
            currency: "jpy",
          });

          次に、<button>タグのonclick関数の処理を記述します。UnivapayCheckout.createによって返されたオブジェクトでopen関数を呼び出すことにより、ウィジェットを開きます。

            var button = document.querySelector("#univapay-payment-checkout");
            button.onclick = function () {
              checkout.open();
            };

          最後に、formの送信を防ぐため、<button>要素をクリックしてsubmitイベントが発火した際の関数handleSubmitの記述をします。

            function handleSubmit() {
            event.preventDefault();
          };

          ウィジェットのデザインを制御するパラメータ

          以下パラメータにより、ウィジェットのデザインが変更可能です。
          その他、どんな処理をさせるか等の動作詳細は、左メニューから各種パラメータを参照のうえ、実装してください。

          各フィールド名について

          • data-で始まる、ケバブケース(kebab-case)で記載のフィールド名はHTML用
          • 2行目にローワーキャメルケース(lowerCamelCase)で記載のフィールド名はJavaScript用
          • いずれかしか記載のないものは、いずれかのみで利用可能
          フィールド許容する値備考省略時の値
          data-textテキスト(無制限)ウィジェットを展開するためのボタン内テキストPay with UnivaPay
          data-size半角英ウィジェットを展開するためのボタンサイズ
          指定可能な値:
          small,normal,large
          data-class半角英数ウィジェットを展開するためのボタンのclass属性に付与する値
          webサイト側のstyleを記述を適用可能
          data-style半角英数ウィジェットを展開するためのボタンのstyle属性に付与する値
          webサイト側のstyleを適用せず、インラインでstyle記述したい場合に利用
          data-hover-style半角英数ウィジェットを展開するためのボタンのhover時のstyle(インライン記述)
          data-header
          header
          テキスト(無制限)ウィジェットのヘッダーに表示したいテキスト本サービス名
          data-title
          title
          テキスト(無制限)ウィジェットのサブヘッダーに表示したい店舗名管理画面での設定に依存
          data-description
          description
          テキスト(無制限)ウィジェットのサブヘッダーの、店舗名の下に表示したいテキスト管理画面での設定に依存
          data-submit-button-text
          submitButtonText
          テキスト(無制限)ウィジェットの「支払い」ボタンに、代わりに表示したいテキスト支払う
          記述ルールについては免責事項を参照してください

          ウェブフック

          処理の結果は、JSONデータとして管理画面の「Webhook」セクションで指定されたURLにPOSTされます。

          「リファレンス > ウェブフック」を参照して、POSTされたデータを取得して注文状況などを更新するスクリプトを作成してください。

          コールバック

          ウィジェットタグ内のソースコードに下記の関数を定義しておくことで、各イベントが発生した時にその内容を含めた通知を実行します。
          処理結果に応じて元のページの表示内容や、遷移先をコントロールしたい場合は、こちらか、フォームタグからsubmitされる値を利用してください。

          イベント内容
          Opened (univapay:opened)決済フォームを開くことで発生するイベントです。その他の情報は含みません。
          Closed (univapay:closed)決済フォームを閉じることで発生するイベントです。他の情報は含みません。
          Success (univapay:success)決済が成功すると発生するイベントです。生成されたリソースのIDと処理の詳細情報が含まれます。
          Error (univapay:error)いずれかの段階で処理が失敗することで発生するイベントです。生成されたリソースのIDが含まれます。
          Token created (univapay:token-created)トランザクショントークンが作成されたときに発生するイベントで、トークンの詳細情報を含みます。定期課金やリカーリング課金のように作成済のトランザクショントークンを利用して決済をする場合は発生しません。
          Charge created (univapay:charge-created)課金が作成されたときに発生するイベントで、課金の詳細情報が含まれています。成功したかどうかに関わらず発生します。
          Subscription created (univapay:subscription-created)定期課金が作成されたときに発生するイベントで、定期課金の詳細情報が含まれています。成功したかどうかに関わらず発生します。
          Validation error (univapay:validation-error)このイベントには各フィールドにエラーがある場合に発生します。エラーがない場合、または各フィールドがまだ選択されていない場合、オブジェクトにはオブジェクトは空白になります。

          コールバックのサンプル

          <script>
              window.addEventListener("univapay:success", (e) => { console.info("Success event", e) }, false);
              window.addEventListener("univapay:token-created", (e) => { console.info("Token event", e) }, false);
              window.addEventListener("univapay:charge-created", (e) => { console.info("Charge event", e) }, false);
              window.addEventListener("univapay:subscription-created", (e) => { console.info("Subscription event", e) }, false);
              window.addEventListener("univapay:validation-error", (e) => { console.error("Validation error event", e) }, false);
          </script>

          17.1.2 パラメータ(基本動作)

          ウィジェットの基本動作を制御するパラメータです。

          定期課金、分割払い、デザインについては別途パラメータ解説ページがあり、左メニューから閲覧可能です。(デザイン用パラメータは、「ウィジェットの設置」ページに記載)

          フィールド名について

          フィールド
          赤字は必須
          は条件付き必須
          許容する値備考省略時の値
          data-app-id
          appId
          半角英数該当店舗のアプリケーションID
          初期設定で作成したもの

          インラインフォームで利用可
          data-checkout
          checkout
          半角英処理の内容

          指定可能な値(意味):
          token(トークンのみ作成し課金しない)
          payment(トークンを作成し課金する)
          ※括弧とその中の文字は値として不要

          token,paymentはインラインフォームで利用可
          data-payment-methods
          paymentMethods
          半角英フォームで選択できる支払い方法の詳細
          カンマ区切りで複数指定可

          指定可能な値(意味):
          card(クレジットカード)
          konbini(コンビニ決済またはPay-easy)
          paidy(ペイディ)
          pay_pay_online(PayPayオンライン)
          we_chat_online(WeChatPayオンライン)
          alipay_online(Alipayオンライン)
          alipay_plus_online(Alipay+オンライン)
          bank_transfer(銀行振込)
          online指定で末尾に_onlineのつくものを一括指定

          各決済手段が利用可能な設定なら、ブランドで更に絞込み可能。
          下記パラメータを利用するなら、card, konbiniは指定不要。

          クレジット:
          visa,mastercard,jcb
          american_express,diners_club
          unionpay,maestro,discover

          コンビニ:
          seven_eleven,family_mart,lawson
          mini_stop,seico_mart,pay_easy
          daily_yamazaki,yamazaki_daily_store
          data-amount
          amount
          半角数課金額

          回数無制限の定期課金の場合は初回の額
          分割払いおよび回数制限付き定期課金の場合は合計額

          日本円以外で実際に流通する補助通貨がある場合、最小の補助通貨の額で指定(例:USD9.00の時はcent基準の900

          インラインフォームで利用可
          data-currency
          currency
          半角英通貨
          ISO 4217基準で記述

          インラインフォームで利用可
          data-token-type
          tokenType
          半角英作成するトランザクショントークンの種類

          指定可能な値(意味):
          one_time(一度だけ課金可)
          recurring(繰り返し課金可)
          subscription(定期課金)

          インラインフォームで利用可
          one_time
          data-product-codes
          productCodes
          半角英数商品コード
          未設定の値でエラー
          カンマ区切りで複数指定可
          ※複数商品の利用方法や注意点はこちら

          amount等、商品に含む情報指定時はそちらを優先
          ※商品に含まれない情報は他パラメータで併用する必要がある(以下例)
          ・初回0円の定期課金商品利用:data-cvv-authorize
          ・仮売上:data-capture

          インラインフォームで利用可
          data-product-code-quantities
          productCodeQuantities
          半角数商品コードの数
          data-product-codesを指定した場合に指定
          ※管理画面でdata-product-codesを指定した場合は管理画面上で自動で付与される
          例:data-product-codes=testcode1
            data-product-code-quantities=2
            この場合、商品コード「testcode1」の商品が2つ

          カンマ区切りで商品コードを複数指定している場合、商品コードの数もカンマ区切りで指定
          例:data-product-codes=testcode1,testcode2
            data-product-code-quantities=1,1
            この場合、商品コード「testcode1」の商品が1つ、商品コード「testcode2」の商品が1つ

          インラインフォームで利用可
          data-name
          name
          半角英数処理の完了時に、formのsubmit時やJavaScriptコールバック時に適用される「トークン」のフィールド名
          ウェブフックやAPIからの結果取得時には適用されない

          未指定時のフィールド名:
          トランザクショントークンのみ作成 univapayTokenId
          定期課金作成 univapaySubscriptionId
          課金作成 univapayChargeId
          左欄参照
          data-capture
          capture
          真偽(true/falseクレジットカードの処理時に「キャプチャ」を行うか
          falseを指定すると「オーソリ」を行う

          コンビニ決済/銀行振込の処理時には、値を不問でdata-capture-at,captureAtを有効にする

          インラインフォームで利用可
          true
          data-capture-at
          captureAt
          半角英数
          YYYYMMDD
          または
          YYMMDDThhmmss
          クレジットでauth="true"なら、この指定日に自動的にキャプチャ実行(1h後〜7D以内)
          コンビニ決済/銀行振込の場合、支払い期限日時

          注意:
          コンビニ決済で支払いの有効期限を「日時単位」で指定したい場合は、data-payment-methods/paymentMethodsを以下のみに限定

          family_mart,lawson,mini_stop
          daily_yamazaki,yamazaki_daily_store
          (セブン・イレブン、セイコーマート、Pay-Easyは時間指定無効のため除外)

          クレジット:日付のみ指定で指定日の9:00
          コンビニ決済/銀行振込:指定日の24:00
          当日で時間未指定はエラー

          インラインフォームで利用可
          しない
          data-expiration-period
          expirationPeriod
          半角英数フォームでの申込処理から支払い(振込)までの有効期限
          ISO8601 duration text で記述
          銀行振込/コンビニ決済で有効

          指定可能な値(意味):
          PxD(x日後)
          PxM(xか月後)

          インラインフォームで利用可
          P30D
          data-expiration-time-shift
          expirationTimeShift
          半角数(記号は:,+
          hh:mm:ss[+09:00]
          銀行振込/コンビニ決済で有効な、フォームでの申込処理から支払い(振込)までの有効期限のうち、時間の部分

          data-expiration-periodP1D以上の指定が必要
          「セブンイレブン」「セイコーマート/他支払(サークルK/サンクス/ペイジー)」は時刻指定が不可で、指定日の24:00まで受付
          末尾に世界標準時間との誤差を入力(日本の場合は[+09:00]

          インラインフォームで利用可
          data-email
          email
          半角英数メールアドレス
          送信した場合、入力済みの欄を表示

          インラインフォームで利用可
          data-address
          address
          真偽(true/false配送先住所
          trueで入力欄(郵便番号、都道府県、市区町村、丁目・番地、マンション名・部屋番号)を表示

          インラインフォームで利用可
          false
          data-shipping-address-country-code
          shippingAddressCountryCode
          ISO 3166-2に記載されている国コード配送先住所の国
          送信した場合、入力済みの欄を表示
          送信しなければ空欄表示

          data-address="true"address:trueなら動作

          インラインフォームで利用可
          data-shipping-address-zip
          shippingAddressZip
          制限なし配送先住所の郵便番号
          送信した場合、入力済みの欄を表示
          送信しなければ空欄表示

          data-address="true"address:trueなら動作

          インラインフォームで利用可
          data-shipping-address-state
          shippingAddressState
          制限なし配送先住所の都道府県
          送信した場合、入力済みの欄を表示
          送信しなければ空欄表示

          data-address="true"address:trueなら動作

          インラインフォームで利用可
          data-shipping-address-city
          shippingAddressCity
          制限なし配送先住所の市区町村
          送信した場合、入力済みの欄を表示
          送信しなければ空欄表示

          data-address="true"address:trueなら動作

          インラインフォームで利用可
          data-shipping-address-line1
          shippingAddressLine1
          制限なし配送先住所の丁目・号・番地
          送信した場合、入力済みの欄を表示
          送信しなければ空欄表示

          data-address="true"address:trueなら動作

          インラインフォームで利用可
          data-shipping-address-line2
          shippingAddressLine2
          制限なし配送先住所のマンション名・部屋番号
          送信した場合、入力済みの欄を表示
          送信しなければ空欄表示

          data-address="true"address:trueなら動作

          インラインフォームで利用可
          data-require-name
          requireName
          真偽(true/falsetrue指定で、氏名の入力欄を表示(入力必須)
          Paidy、コンビニ決済、銀行振込では既存のため無効
          false
          data-require-email
          requireEmail
          真偽(true/falsetrue指定で、メールアドレスの入力欄を表示(入力必須)
          クレジットカード、コンビニ決済では既存のため無効
          false
          data-require-phone-number
          requirePhoneNumber
          真偽(true/falsetrue指定で、電話番号の入力欄を表示(入力必須)

          インラインフォームで利用可
          false
          data-phone-number
          phoneNumber
          半角数(ハイフンなし)電話番号
          送信した場合、入力済みの欄を表示
          ※電話番号を必須にしている場合のみ
          data-require-billing-address
          requireBillingAddress
          真偽(true/falsetrue指定で、請求先住所の入力欄を表示(入力必須)false
          data-cvv-authorize
          cvvAuthorize
          真偽(true/falsetrue指定で、セキュリティコード認証の実行
          クレジット決済のみ有効

          カード情報の登録のみ:data-checkout="token"data-token-type="recurring" を指定
          初回0円の定期課金を作成:data-checkout="payment"data-token-type="subscription"(または"recurring" ) を指定

          なおセキュリティコードは本サービスで保存していません

          インラインフォームで利用可
          false
          data-show-cvv
          showCvv
          真偽(true/falsefalse指定でセキュリティコード認証欄を非表示化
          クレジット決済のみ、かつ審査時にセキュリティコード認証を「必須」と指定されていない場合のみ有効

          インラインフォームで利用可
          true
          data-locale
          locale
          半角英表示される言語
          auto(ブラウザ依存),en-us(米国英語),ja-jp(日本語),zh-tw(台湾繁体字),zh-cn(中国簡体字),en(英国英語),ja(日本語),zh(中国語簡体字),ko(韓国語),th(タイ語),ru(ロシア語)

          インラインフォームで利用可
          data-univapay-reference-id
          univapayReferenceId
          半角英数リファレンスID
          CSV課金時の検索キー
          data-token-type="recurrring"なら有効

          インラインフォームで利用可
          data-univapay-customer-id
          univapayCustomerId
          半角英数
          (UUID)
          UUID形式で定義したカスタマーID
          クレジットカード決済でのみ有効

          このフィールドを初回の決済時に設定しておくと、リカーリングトークンの作成を消費者に任意選択させるチェックボックスを表示
          ※1

          用途:
          次回以降、カスタマーIDをパラメータに持つタグ(コード)でウィジェットを表示した場合、過去に同加盟店で利用したクレジットカード情報を選択して決済することが可能

          data-univapay-customer-id指定時のトークンタイプについて
          one_time 指定か省略の場合
           チェック(※1)なしでone_timeトークンを作成
           チェック(※1)ありでrecurringトークンを作成
          recurring 指定の場合
           チェック(※1)必須でrecurringトークンを作成

          インラインフォームで利用可
          data-auto-submit
          autoSubmit
          真偽(true/falsetrue指定で、完了ボタンを押下しフォームを閉じた時にformで指定したURLページに自動で消費者を遷移させるのと同時に、HTTP GETメソッドで以下を送信

          トランザクショントークン(data-checkout-type=“token”指定時には univapayTokenId

          決済番号(data-checkout-type=“payment” 指定時には univapayChargeIddata-token-type=“subscription” 指定時には univapaySubscriptionId
          false
          data-auto-close
          autoClose
          真偽(true/falsetrue指定で、処理の完了後にウィジェットが自動的に閉じるfalse
          data-remove-checkout-button-after-charge
          removeCheckoutButtonAfterCharge
          真偽(true/falsetrue指定で、処理の完了後もウィジェットの起動ボタン表示を維持
          false指定で消去
          true
          data-usage-limit
          usageLimit
          半角英作成したrecurrringタイプのトークンに対する課金の制限期間
          期間中に1度だけの課金が許容される
          変更不可(新しいトークン作成が必要)

          指定可能な値:
          daily, weekly, monthly, annually

          インラインフォームで利用可
          data-show-logo
          showLogo
          真偽(true/falseウィジェットに店舗のロゴを表示するかどうか
          ※幅が5px以下の場合にロゴは非表示
          true
          data-timeout
          timeout
          半角数指定した秒数が経過するとウィジェットを閉じてタイムアウトのエラー画面を表示
          data-auto-close-on-error
          autoCloseOnError
          真偽(true/falsedata-timeoutを指定した場合
          タイムアウトのエラー画面を表示してから約3秒後にその画面を自動で閉じる
          data-hide-recurring-checkbox
          hideRecurringCheckbox
          真偽(true/falsedata-token-typeをrecurringに指定した場合のウィジェットに「個人情報の同意」のチェックボックスを表示するかどうか

          指定可能な値(意味):
          true(非表示にする)
          false(表示する)

          インラインフォームで利用可
          false
          data-hide-privacy-link
          hidePrivacyLink
          真偽(true/falseウィジェットに表示される「個人情報の取り扱いについて」のリンクを表示するかどうか

          指定可能な値(意味):
          true(非表示にする)
          false(表示する)

          インラインフォームで利用可
          false
          data-custom-field-hoo
          customFieldHoo
          半角英hoo部分の指定次第で、追加の入力欄を表示

          指定可能な値(意味):
          labels(入力欄のラベル)
          typesselect/stringで選択肢/入力欄)
          requiredtrue/falseで必須/任意)
          optionstypeselectなら必須、;区切りで選択肢)
          keys (メタデータのキー)
          data-metadata
          metadata
          半角英消費者やオーダーを個別に識別する場合などに使える「メタデータ」

          既存フィールドと重複しないよう注意
          フィールド名はケバブケースで記述
          例:data-metadata=”foo-bar:"baz" と指定した場合、追加されるメタデータは{“foo-bar”:"baz"}

          1つのフィールドに対して複数の値を指定したい場合は「\,」で、複数のフィールドに同じ値を指定したい場合には「,」区切りで記述
          data-hoo半角英任意の用途で利用できる、任意のフィールド

          既存フィールドと重複しないよう注意

          フィールド名はローワーキャメルケースで記述
          例:data-hoo-bar=”baz" と指定した場合、追加される任意データは{“hooBar”:"baz"}

          ※JavaScriptでは利用不可
          • data-で始まる、ケバブケース(kebab-case)で記載のフィールド名はHTML用
          • 2行目にローワーキャメルケース(lowerCamelCase)で記載のフィールド名はJavaScript用
          • いずれかしか記載のないものは、いずれかのみで利用可能

          17.1.3 パラメータ(定期課金)

          ウィジェットで定期課金登録をする際に、定期課金の挙動を指定するパラメータです。

          基本動作、分割払い、デザインについては別途パラメータ解説ページがあり、左メニューから閲覧可能です。(デザイン用パラメータは、「ウィジェットの設置」ページに記載)

          フィールド名について

          • data-で始まる、ケバブケース(kebab-case)で記載のフィールド名はHTML用
          • 2行目にローワーキャメルケース(lowerCamelCase)で記載のフィールド名はJavaScript用
          • いずれかしか記載のないものは、いずれかのみで利用可能
          フィールド
          赤字は必須
          は条件付き必須
          許容する値備考省略時の値
          data-subscription-period
          subscriptionPeriod
          半角英定期課金の間隔

          指定可能な値(意味):
          daily(毎日)
          weekly(毎週)
          biweekly(隔週)
          monthly(毎月)
          bimonthly(隔月)
          quarterly(3ヶ月)
          semiannually(6ヶ月)
          annually(毎年)
          基本動作data-token-type="subscription"指定なら必須

          さらに詳細な指定(意味):
          PxD(x日周期)
          PxW(x週間周期)
          PxM(xヶ月周期)
          PxY(x年周期)

          インラインフォームで利用可
          data-subscription-id
          subscriptionId
          半角英数継続中の定期課金IDを指定することで、登録されたカード情報を変更
          data-checkout="token"の指定が必須、data-app-id以外のパラメータは不要

          必須: いいえ
          指定可能な値: アプリケーショントークンに紐付いたストアに作成されている定期課金のID

          インラインフォームで利用可
          data-subscription-plan
          subscriptionPlan
          半角英「回数指定型」の定期課金を指定する際に必要

          指定可能な値(意味):
          fixed_cycles(指定した回数に達するまで)
          fixed_cycle_amount(指定した金額に達するまで)
          fixed_cycle_amount指定で端数が出た場合、最終回は端数のみ課金

          インラインフォームで利用可
          data-subscription-qty
          subscriptionQty
          半角数data-subscription-plan="fixed_cycles"なら、支払の回数(初回課金を含む)
          data-subscription-plan="fixed_cycle_amount"なら、課金ごとの金額
          data-subscription-planでいずれかの値を指定すると必須

          インラインフォームで利用可
          data-subscription-initial-amount
          subscriptionInitialAmount
          半角数定期課金の、初回金額
          0指定で初回は「カード登録のみ」実行(セキュリティコード認証の併用必須)

          インラインフォームで利用可
          基本動作のdata-amountで指定した額
          data-subscription-start
          subscriptionStart
          半角数ハイフン区切り
          YYYY-MM-DD
          作成された定期課金の2回目の課金を行う日付

          インラインフォームで利用可
          data-subscription-start-in
          subscriptionStartIn
          半角英数定期課金の2回目の課金が行われるまでの期間

          指定可能な値(意味):
          PxD(x日後)
          PxW(x週間後)
          PxM(xか月後)
          PxY(x年後)

          インラインフォームで利用可
          data-subscription-periodに従う
          data-subscription-start-day-of-month
          subscriptionStartDayOfMonth
          半角英数
          (1〜31)
          定期課金の2回目の課金を行う日付

          data-subscription-start-in/startInとの組み合わせも可能
          例:
          startDayOfMonth=20&startIn=P2M
          翌々月(2か月後)の20日

          startIn未設定の場合は、当月の該当日以前であれば当月にも課金され、該当日以降であれば翌月の該当日に課金されます

          インラインフォームで利用可
          data-subscription-periodに従う
          data-subscription-preserve-end-of-month
          subscriptionPreserveEndOfMonth
          真偽(true/falsetrueで、かつ、開始日に月の末日を指定した場合、以降の課金日を末日に固定する

          例:
          開始日が2018-06-30の場合、次の請求はtrueの場合は2018-07-31
          falseの場合は2018-07-30となります。
          periodが月単位時のみ有効

          インラインフォームで利用可
          false
          data-subscription-retry-interval
          subscriptionRetryInterval
          半角英数定期課金が失敗したときのリトライ間隔
          ISO 8601 duration 形式で記述
          P1D以上かつ定期課金サイクルより短くないとエラー

          指定可能な値(意味):
          PxD(x日)
          PxW(x週間)
          PxM(xか月)

          インラインフォームで利用可
          定期課金の周期÷リトライ回数の間隔
          (余り切捨)
          表記ルールについては免責事項を参照してください

          17.1.4 パラメータ(分割払い)

          ウィジェットで、消費者に分割払いを選択させたい場合に、指定するパラメータです。
          基本動作に加え、以下を指定してください。

          フィールド名について

          • data-で始まる、ケバブケース(kebab-case)で記載のフィールド名はHTML用
          • 2行目にローワーキャメルケース(lowerCamelCase)で記載のフィールド名はJavaScript用
          • いずれかしか記載のないものは、いずれかのみで利用可能
          フィールド
          赤字は必須
          は条件付き必須
          許容する値備考省略時の値
          data-allow-card-installments
          allowCardInstallments
          真偽(true/falsetrue指定で、分割払いの回数を選択するドロップダウンメニューを表示
          クレジットカードが指定または選択され、
          data-checkout="payment"かつ、
          data-token-type="subscription"以外を指定し、
          契約上分割払いが可能な場合のみ有効

          インラインフォームで利用可
          false
          data-card-installment-options
          cardInstallmentOptions
          半角数data-allow-card-installments="true"の時、ドロップダウンメニューでの選択肢を制御

          選択可能な値:
          1, 3, 5, 6, 10, 12, 15, 18, 20, 24, revolving

          インラインフォームで利用可
          全て
          表記ルールについては免責事項を参照してください

          17.2 リンクフォーム - 概要

          このページは「初期設定」が完了していることを前提に作成しています。

          リンクフォームは、APIに対してHTTP GETメソッドで決済の詳細を送信することで、決済フォームのリソースを生成し、そこ消費者を遷移させ、決済後にリダイレクトすることができます。

          加盟店さまの多くは、管理画面から店舗内にリンクフォームの設定をし、短縮URLをメール送信するか、サイト内に<a>タグとして設置する運用をすると想定しています。

          そのため、原則的に不要と認識していますが、ここでは、APIの挙動を解説します。

          プログラムの記述ができる方にとっては、リンクフォームを選択して動的にタグを書き出すことは、タグが長くなるだけで何のメリットもありません。
          また、iframeタグを使用してウェブページへリンクフォームを埋め込む実装はできません。
          そのため、動的にタグ出力をするのであれば、メリットの多いウィジェットを採用することを強く推奨します。

          リンクフォームは、技術や予算の都合上、動的なタグ出力を行えない方を対象する機能とご認識ください。

          リンクフォームの役割

          リンクフォームは、以下の役割を果たします。

          支払い方法の選択

          消費者に、希望の支払い方法をクリック(またはタップ)で選択させます。

          この選択画面で表示される選択肢は、リンクフォームのタグの記述内容に依存します。なお、支払い方法を単一に指定した場合、この選択画面は省略されます。

          必須情報の入力

          選択された「支払い方法」毎に予め設定されいる必須情報を、消費者に入力させます。

          入力欄はタグの記述内容によって、追加することも可能です。
          詳しくはこちら

          APIのURL

          https://checkout.univapay.com/forms/<各店舗のフォームID>

          各店舗のフォームIDは、管理画面の店舗>店舗名をクリック>決済フォームタブ>リンクフォーム設定>URLコード
          から確認してください。
          forms/から?appIDの間に記載されています。

           例)https://checkout.univapay.com/forms/0a000ebb-caa0-00bf-ad0e-0de0e000fbe0?appId=xxx…

          各種パラメータを?hoo=111&bar=222&baz=333…のように続けて記述したものを表示し、消費者の遷移を促してください。

          タグのジェネレータ

          管理画面の店舗>店舗名をクリック>決済フォームタブ>リンクフォーム設定>URLコード
          で、各種設定を反映した、タグの生成が可能です。

          管理画面から行える設定

          管理画面の店舗>店舗名をクリック>決済フォームタブ>リンクフォーム設定>設定
          で、リンクフォームの各種設定が可能です。

          以下は、事前に管理画面から動作を設定できる内容です。

          決済方法(ON/OFF)

          以下は、タグで値を指定すれば、そちらを優先し、元の設定を無視します。

          • クレジットカード
          • コンビニ
          • 銀行振込
          • 他、オンラインモバイルの各銘柄

          お客様情報(ON/OFF)

          以下は、タグ設置時にの指定に関わらず、設定が優先されます。

          • 名前を必須にする
          • カナを必須にする
          • メールアドレスを必須にする
          • 電話番号を必須にする
          • 住所を必須にする

          言語(ドロップダウンメニュー)

          言語は、タグで値を指定すれば、そちらを優先し、元の設定を無視します。

          カスタムの入力欄

          カスタムの入力欄は、タグで何かしらの値を指定すれば、そちらを優先し、元の設定を無視します。

          リダイレクトURL

          リダイレクトURLは、タグで何かしらの値を指定すれば、そちらを優先し、元の設定を無視します。
          以下の処理ステータス毎に、別のURLを指定できます。

          • 成功
          • 処理待ち
          • 失敗

          テーマ

          テーマの設定は、タグでの指定で変更することはできません。全てのフォームで統一されます。

          • タイトル(ON/OFF)
            • 店舗名の表示
            • ロゴの表示
          • テーマ(ラジオボタン)
            • ライト
            • ダーク
          • カスタマイズ(カラーコード)
            • ヘッダー
            • ボタン
            • 背景
            • 内容の背景(カラム内側の色)

          完了後の処理

          処理の完了後は、パラメータによる指定通りに、消費者をリダイレクトします。

          ウィジェットのようにリダイレクト時に結果をHTTP GETやSubmitで送信したり、JavaScriptのコールバックはできません。

          一方で成功時と失敗時、それぞれのリダイレクト先は指定でき、追加したメタデータをHTTP GETメソッドで送信(消費者の遷移と同時に)できます。

          したがって、処理後の画面遷移を制御することは可能ではありますが、送信先のURLは消費者からも可視であるため、処理結果の判定や、サービスを受ける権利の付与は行わない事を推奨します。
          また、誤ってサービスを履行したり、物品を発送した場合でも、当社では一切の責任を負いかねます。

          結果判定には、消費者から不可視の「GETによる取得」か、「ウェブフック」を用いることを推奨します。

          消費者の支払いフロー

          リンクフォームを利用した場合の決済手段ごとの支払いフローは、下記の画像付き資料を参照してください。

          消費者の支払いフロー(PDFファイル)

          17.2.1 パラメータ(基本動作)

          フィールド
          赤字は必須
          は条件付き必須
          許容する値備考省略時の値
          appId半角英数該当店舗のアプリケーションID
          初期設定で作成したもの
          checkout
          半角英処理の内容

          指定可能な値(意味):
          token(トークンのみ作成し課金しない)
          payment(トークンを作成し課金する)
          qr(トークンのみ作成しQR表示)
          productCodes送信時に必須
          payment
          paymentMethods
          半角英フォームで選択できる支払い方法

          カンマ区切りで複数指定可
          単数のみ指定の場合はフィールド名末尾に[]の追加が必須

          指定可能な値(意味):
          card(クレジットカード)
          konbini(コンビニ決済またはPay-easy)
          paidy(Paidy)
          bank_transfer(銀行振込)
          pay_pay_online(PayPayオンライン)
          we_chat_online(WeChatPayオンライン)
          alipay_online(Alipayオンライン)
          alipay_plus_online(Alipay+オンライン)
          online(オンラインモバイル全て)

          各決済手段が利用可能な設定なら、ブランドで更に絞込み可能。
          下記パラメータを利用するなら、card, konbiniは指定不要。

          クレジット:
          visa,mastercard,jcb
          american_express,diners_club
          unionpay,maestro,discover

          コンビニ:
          seven_eleven,family_mart,lawson
          mini_stop,seico_mart,pay_easy
          daily_yamazaki,yamazaki_daily_store
          amount 半角数課金額

          課金額
          回数無制限の定期課金の場合は初回の額
          分割払いおよび回数制限付き定期課金の場合は合計額

          tokenOnly=trueなら省略可
          日本円以外で実際に流通する補助通貨がある場合、最小の補助通貨の額を指定(USD9.00の時はcent基準の900
          currency半角英通貨

          ISO 4217基準で記述
          jpy
          type半角英作成するトランザクショントークンの種類

          指定可能な値(意味):
          one_time(一度だけ課金可)
          recurring(繰り返し課金可)
          subscription(定期課金)
          one_time
          tokenOnly真偽(true/falseトークン化のみで課金しない
          trueならamountを無視
          false
          productCodes
          半角英数管理画面で事前に設定した商品コード
          未設定の値でエラー
          カンマ区切りで複数指定可
          ※複数商品の利用方法や注意点はこちら

          amount等、商品に含む情報指定時はそちらを優先
          ※商品に含まれない情報は他パラメータで併用する必要がある
          ・初回0円の定期課金商品利用:data-cvv-authorize
          ・仮売上:data-capture
          productQuantities半角数商品の数
          productCodesを指定した場合に指定
          ※管理画面でproductCodesを指定すると自動でURLに付与される

          カンマ区切りで商品コードを複数指定している場合、商品の数もカンマ区切りで指定
          例:)productQuantities=1,2
          auth真偽(true/falseオーソリ
          クレジット決済でのみ有効

          与信枠の確保のみ行うなら利用
          (別途、売上処理かキャンセル処理が必要)
          false
          captureAt半角英数
          YYYY-MM-DDThh:mm:ss.ssssZ
          クレジットでauth="true"なら、この指定日に自動的にキャプチャ実行(1h後〜7D以内)
          expirationPeriod半角英数フォームでの申込処理から支払い(振込)までの有効期限
          銀行振込/コンビニ決済で有効

          指定可能な値(意味):
          PxD(x日後)
          PxM(xヶ月後)
          P30D
          expirationTimeShift半角数(記号は:,+)hh:mm:ss+09:00
          URLエンコードも可
          銀行振込/コンビニ決済で有効な、フォームでの申込処理から支払い(振込)までの有効期限のうち、時間の部分

          data-expiration-periodP1D以上の指定が必要
          「セブンイレブン」「セイコーマート/他支払(サークルK/サンクス/ペイジー)」は時刻指定が不可で、指定日の24:00まで受付
          末尾に世界標準時間との誤差を入力(日本の場合は+09:00
          nameテキスト(制限なし)名前
          送信した場合、入力済みの欄を表示
          ※リンクフォーム設定で名前を必須にしている場合のみ
          nameKanaテキスト(制限なし)名前のカナ
          送信した場合、入力済みの欄を表示
          ※リンクフォーム設定でカナを必須にしている場合のみ
          cardholder半角英カード名義
          送信した場合、入力済みの欄を表示
          emailAddress 半角英数(メールアドレスとして有効な記号を含む)メールアドレス
          送信した場合、入力済みの欄を表示
          hidePrefilledEmail=trueなら必須
          hidePrefilledEmail真偽(true/falseフォームの「メールアドレス」欄を非表示false
          phoneNumber半角数(ハイフンなし)電話番号
          送信した場合、入力済みの欄を表示
          ※リンクフォーム設定で電話番号を必須にしている場合のみ
          phoneNumberCountryCode半角数電話番号の国コード
          送信した場合、入力済みの国コードを表示
          ※リンクフォーム設定で電話番号を必須にしている場合のみ
          requirePhoneNumber半真偽(true/falsetrue指定で電話番号の入力欄を表示(入力必須)
          cvvAuthorize真偽(true/falsetrue指定で、セキュリティコード認証の実行
          クレジット決済のみ有効
          なおセキュリティコードは本サービスで保存しておらず、APIやCSVへのrecurringリクエスト時には認証を行いません
          false
          hideCvv真偽(true/falsefalse指定でセキュリティコード認証欄を非表示化クレジット決済のみ、かつ審査時にセキュリティコード認証を「必須」と指定されていない場合のみ有効false
          hideRecurringCheckbox真偽(true/falsetypeをrecurringに指定した場合のリンクフォームに「個人情報の同意」のチェックボックスを表示するかどうか

          指定可能な値(意味):
          true(非表示にする)
          false(表示する)
          false
          hidePrivacyLink真偽(true/falseリンクフォームに表示される「個人情報の取り扱いについて」のリンクを表示するかどうか

          指定可能な値(意味):
          true(非表示にする)
          false(表示する)
          false
          univapayCustomerId半角英数(UUID)UUID形式で定義したカスタマーID
          クレジットカード決済でのみ有効

          このフィールドを初回の決済時に設定しておくと、リカーリングトークンの作成を消費者に任意選択させるチェックボックスを表示
          ※1

          用途:
          次回以降、カスタマーIDをパラメータに持つタグ(コード)でリンクフォームを表示した場合、過去に同加盟店で利用したクレジットカード情報を選択して決済することが可能

          univapayCustomerId指定時のトークンタイプについて
          one_time 指定か省略の場合
           チェック(※1)なしでone_timeトークンを作成
           チェック(※1)ありでrecurringトークンを作成
          recurring 指定の場合
           チェック(※1)必須でrecurringトークンを作成

          ※リンクフォーム作成時の注意点
          リンクフォーム作成時にカスタマーIDを指定するにはメタデータのキーをunivapay-customer-idと指定する必要あり
          successRedirectUrl半角英数(URLとして有効な記号を含む)決済成功時のリダイレクトURL
          failureRedirectUrl半角英数(URLとして有効な記号を含む)決済失敗時のリダイレクトURL
          pendingRedirectUrl半角英数(URLとして有効な記号を含む)決済処理待ちでタイムアウトした場合のリダイレクトURL
          autoRedirect真偽(true/falsetrue指定で決済完了時に自動リダイレクトfalse
          showRedirectMetadata真偽(true/falsetrue指定で、付与されたメタデータをリダイレクト先のURL末尾に付加します。false
          customFieldKeys[]テキスト(制限なし)決済情報のメタデータの「キー」欄に記録
          複数指定可能(カンマ区切り)
          customField関連のフィールド指定時必須
          customFieldLabels[] テキスト(制限なし)フォームにカスタム入力欄を挿入
          入力欄のラベルはこの値が出力される
          customField関連のフィールド指定時必須
          customFieldTypes[] 半角英カスタム入力欄のタイプ

          指定可能な値(和訳):
          select(選択)
          string(テキスト入力)
          ※括弧とその中の文字は値として不要
          customField関連のフィールド指定時必須
          customFieldRequired[] 真偽(true/falseカスタム入力欄を必須化
          customField関連のフィールド指定時必須
          customFieldOptions[] テキスト(制限なし)カスタム入力欄が選択肢の場合の選択肢
          複数指定可能(カンマ区切り)
          customFieldTypes[]=select指定時必須

          フィールド名はローワーキャメルケースで記載する必要があります。
          HTTP GETメソッドであるため、値を"(ダブルクォーテーション)で囲む必要はありません。

          17.2.2 パラメータ(定期課金/分割払い)

          基本動作については別途パラメータ解説ページがあり、左メニューから閲覧可能です。

          フィールド名はローワーキャメルケースで記載する必要があります。
          HTTP GETメソッドであるため、値を"(ダブルクォーテーション)で囲む必要はありません。

          定期課金

          リンクフォームで定期課金登録をする際に、定期課金の挙動を指定するパラメータです。

          フィールド
          赤字は必須
          は条件付き必須
          許容する値備考省略時の値
          period

          半角英数期課金の間隔

          指定可能な値(意味):
          daily(毎日)
          weekly(毎週)
          monthly(毎月)
          bimonthly(隔月)
          quarterly(3ヶ月)
          semiannually(6ヶ月)
          annually(毎年)
          基本動作type=subscription指定なら必須

          さらに詳細な指定(意味):
          PxD(x日周期)
          PxW(x週間周期)
          PxM(xヶ月周期)
          PxY(x年周期)
          subscriptionId
          半角英数継続中の定期課金IDを指定することで、登録されたカード情報を変更
          data-checkout="token"の指定が必須、data-app-id以外のパラメータは不要

          指定可能な値: アプリケーショントークンに紐付いたストアに作成されている定期課金のID
          initialAmount半角数定期課金の初回金額
          startIn半角英数定期課金の2回目の課金が行われるまでの期間

          指定可能な値(意味):
          PxD(x日後)
          PxW(x週間後)
          PxM(xヶ月後)
          PxY(x年後)
          periodに従う
          startDayOfMonth半角英数
          (1〜31)
          定期課金の2回目の課金が行われる日付

          startInとの組み合わせも可能
          例:
          startDayOfMonth=20&startIn=P2M
          翌月の20日

          startIn未設定の場合は、
          当月の該当日以前であれば当月にも課金され、
          該当日以降であれば翌月の該当日に課金されます
          periodに従う
          subscriptionRetryInterval半角英数定期課金が失敗したときのリトライ間隔
          P1D以上かつ定期課金サイクルより短くないとエラー

          指定可能な値(意味):
          PxD(x日)
          PxW(x週間)
          PxM(xか月)
          定期課金の周期÷リトライ回数の間隔
          (余り切捨)
          terminationMode半角英定期課金の停止リクエストを受理したとき、実際に自動課金のステータスをsupended(一時停止)に変更するタイミング

          メールやwebhookの通知も同期するため、定期課金の停止申請後も次回課金日まで会員権利を維持したい場合に利用

          指定可能な値(意味):
          immediate(即時)
          on_next_payment(次回課金日)
          immediate
          表記ルールについては免責事項を参照してください

          分割払い

          リンクフォームで消費者に分割払いを選択させたい場合に、指定するパラメータです。

          フィールド許容する値備考省略時の値
          allowCardInstallments真偽(true/falsetrue指定で、分割払いの回数を選択するドロップダウンメニューを表示
          クレジットカードが指定または選択され、
          checkout=paymentかつ、
          type=subscription以外を指定し、
          契約上分割払いが可能な場合のみ有効
          false
          表記ルールについては免責事項を参照してください

          17.3 インラインフォーム - 概要

          このページは初期設定が完了していることを前提に作成しています。

          インラインフォームは、インラインフレームに本サービスの決済フォームのリソースを表示し、消費者に直接カード情報を入力させて処理することを目的としたものです。

          インラインフォームはクレジットカード決済のみを行うことができ、他の決済は利用できません。

          インラインフォームの役割

          インラインフォームは、以下の役割を果たします。

          必須情報の入力

          クレジットカード決済の際の必須情報を、消費者に入力させます。

          入力欄はインラインフォームのタグ記述内容によって、追加することも可能です。
          詳しくはこちら

          インラインフォームで行われる処理

          支払い方法処理認証後の処理
          クレジットカードカード会社に対し、要求された処理(オーソリ/キャプチャ)で認証認証済みのカード情報をトークン化して決済処理

          完了後の処理:
          <form>submit
          ウェブフック
          APIからの取得が可能に

          インラインフォームのデザイン

          インラインフォームのデザインは、パラメータによって指定可能です。
          設置先のサイトに、ある程度違和感なく溶け込むデザインを施すことができます。

          詳しくはこちら

          17.3.1 設置 – (HTML)

          インラインフォーム設置用のタグ

          インラインフォームのタグは、3部で構成されます。

          1.本サービスの.jsファイルを読み込むための<script>タグ

          <script src="https://widget.univapay.com/client/checkout.js"></script>

          2.処理の内容を定義する<form>タグ

          <form>タグ内の、空の<span>要素内の各属性で、処理の内容を定義します。

          <form id="payment-form" action="<任意のURL>">
              <div id="checkout">
                  <span
                      data-app-id="{アプリトークンID}"
                      data-checkout="payment"
                      data-amount="1000"
                      data-currency="jpy"
                      data-inline="true"
                  ></span>
              </div>
          
              <button type="submit">Pay</button>
          </form>

          3.インラインフレーム内から処理後のデータを引き出すJavaScript

          ここでは、インラインフレーム内からunivapayTokenIdを取り出して、<form>タグのaction属性の値として定義した「任意のURL」へsubmitする動作を記述しています。

          この動作は、不要であれば省略できます。

          <script>
              (function () {
                  var form = document.getElementById("payment-form");
          
                  function getPaymentInfo() {
                      event.preventDefault();
          
                      var iFrame = document.querySelector("#checkout iframe");
                      UnivapayCheckout.submit(iFrame)
                          .then((data) => {
                              console.log(data);
                              // The `univapayTokenId` hidden input
                              // has been added with the token id
                              form.submit();
                          })
                          .catch((errors) => {
                              console.error(errors);
                          });
                  }
          
                  form.addEventListener("submit", getPaymentInfo);
              })();
          </script>

          インラインフォームのデザインを制御するパラメータ

          全て、インラインでのstyle記述と同じルールで記述してください。
          備考欄に記載の要素に、インラインでstyleの値が記述されます。

          フィールド許容する値備考省略時の値
          data-inline-item-style
          半角英数
          +記号
          ラベル、入力欄、エラーメッセージのセットが格納された
          <div class="form-group form-group-sm">
          と、それに内包される
          <div class="checkbox">
          に適用したいstyle
          当社規定のCSS適用
          data-inline-text-item-style<div class="form-group form-group-sm">
          に適用したいstyle
          ただし、内包される<div class="checkbox">には適用しない
          (個別の指定が必要な場合)
          data-inline-toggle-item-style<div class="checkbox">にのみ適用したいstyle
          (個別の指定が必要な場合)
          data-inline-item-label-style各入力欄のラベル
          <label class="control-label">
          にのみ適用したいstyle
          data-inline-text-item-label-styleテキスト入力フィールドに入力された文字のラベル
          <label class="control-label">
          にのみ適用したいstyle
          data-inline-field-styleテキスト入力フィールドに入力された文字と、チェックボックスのラベル
          <span class="input-group">
          に適用したいstyle
          data-inline-text-field-styleテキスト入力フィールドに入力された文字
          <span class="input-group">
          に適用したいstyle
          ただし、内包される<div class="checkbox">には適用しない
          (個別の指定が必要な場合)
          data-inline-item-error-styleエラーメッセージ
          <div class="field-error">
          に適用したいstyle
          data-inline-text-error-styleエラーメッセージ
          <div class="field-error">
          に適用したいstyle
          ただし、内包される<div class="checkbox">には適用しない
          (個別の指定が必要な場合)
          data-inline-field-invalid-styleテキスト入力フィールドに入力された文字が、無効と判定された場合
          <input class="form-control input-sm">
          に適用したいstyle
          data-inline-text-field-invalid-styleテキスト入力フィールドに入力された文字が、無効と判定された場合
          <input class="form-control input-sm">
          に適用したいstyle
          ただし、内包される<div class="checkbox">には適用しない
          (個別の指定が必要な場合)
          data-inline-text-toggle-invalid-style<div class="checkbox">が無効のまま送信されようとした時に適用したいstyle
          (個別の指定が必要な場合)
          data-inline-field-focus-styleテキスト入力フィールドがフォーカスされた時に
          <span class="input-group-focus">
          に適用したいstyle
          data-inline-text-field-focus-styleテキスト入力フィールドがフォーカスされた時に
          <span class="input-group-focus">
          に適用したいstyle
          ただし、内包される<div class="checkbox">には適用しない
          (個別の指定が必要な場合)
          data-inline-toggle-field-focus-style<div class="checkbox">がフォーカスされた時に適用したいstyle
          (個別の指定が必要な場合)
          記述ルールについては免責事項を参照してください

          17.3.2 設置 – (JavaScript)

          インラインフォーム設置用のタグ

          以下は、「支払う」と表示されたボタンでの、1000円を決済するためのインラインフォームの設置例です。

          <script src="https://widget.univapay.com/client/checkout.js"></script>
          <style>
            #univapay-payment-checkout {
              position: absolute;
              top: 360px;
            }
          </style>
          
          <form id="payment-form" onSubmit="handleSubmit()">
            <button id="univapay-payment-checkout">
             支払う
            </button>
          </form>
          
          <script>
            var checkout = UnivapayCheckout.create({
              appId: "<アプリトークンID>",
              checkout: "payment",
              amount: 1000,
              currency: "jpy",
              cvvAuthorize: true,
              inline: true,
            });
            window.onload = function () {
              checkout.open();
            }
            function handleSubmit() {
              event.preventDefault();
              var form = document.getElementById("payment-form");
              var iFrame = document.querySelector("iframe");
              UnivapayCheckout.submit(iFrame)
                .then(function (data) {
                  form.submit();
                  }).catch(function (errors) {
                    console.error(errors);
                });
            };
          </script>

          まず、インラインフォームを含むページに次の行をHTMLでの設置と同様に含める必要があります

          <script src="https://widget.univapay.com/client/checkout.js"></script>

          支払うボタンについてのCSS styleの記述です。説明の都合上styleタグに記述しています。

          <style>
            #univapay-payment-checkout {
              position: absolute;
              top: 360px;
            }
          </style>

          HTMLでの設置とは異なり、自動的にページ上にボタンは作成されませんので、タグとタグで送信するための記述をします。
          submitイベントが発火に反応して、onSubmitに指定された関数”handleSubmit()”を呼び出します。

          <form id="payment-form" onSubmit="handleSubmit()">
            <button id="univapay-payment-checkout">
             支払う
            </button>
          </form>
          
          <script>
          <!--
          タグ内にJavaScriptの記述をします
          内容は以下で説明
          -->
          </script>

          次に、UnivapayCheckout.createを呼び出す記述をします。
          例えば、1000円の支払いを処理するインラインフォーム・オブジェクトを作成するには、以下を記述する必要があります。

            var checkout = UnivapayCheckout.create({
              appId: "<アプリトークンID>",
              checkout: "payment",
              amount: 100,
              currency: "jpy",
              cvvAuthorize: true,
              inline: true,
              inlineItemLabelstyle:,
            });

          本サンプルではページの読み込みをした時にインラインフォームを表示させるため、onload関数の記述をしています。
          event.preventDefault();で、form.submit();の動作させるタイミングを制御するために、一度formのデフォルト処理を防ぐ記述をします。
          最後にUnivapayCheckout.submitを呼び出す記述をします。ボタンをクリックした時実際に支払いを行う処理を記述し、送信時エラーが発生した場合はその内容を返します。

            window.onload = function () {
              checkout.open();
            }
            function handleSubmit() {
              event.preventDefault();
              var form = document.getElementById("payment-form");
              var iFrame = document.querySelector("iframe");
              UnivapayCheckout.submit(iFrame)
                .then(function (data) {
                  form.submit();
                  }).catch(function (errors) {
                    console.error(errors);
                });
            };

          インラインフォームのデザインを制御するパラメータ

          全て、インラインでのstyle記述と同じルールで記述してください。
          備考欄に記載の要素に、インラインでstyleの値が記述されます。

          フィールド
          赤字は必須
          は条件付き必須
          許容する値備考省略時の値
          inlineItemStyle半角英数
          +記号
          ラベル、入力欄、エラーメッセージのセットが格納された
          <div class="form-group form-group-sm">
          と、それに内包される
          <div class="checkbox">
          に適用したいstyle
          当社規定のCSS適用
          inlineTextItemStyle<div class="form-group form-group-sm">
          に適用したいstyle
          ただし、内包される<div class="checkbox">には適用しない
          (個別の指定が必要な場合)
          inlineToggleItemStyle<div class="checkbox">にのみ適用したいstyle
          (個別の指定が必要な場合)
          inlineItemLabelStyle各入力欄のラベル
          <label class="control-label">
          にのみ適用したいstyle
          inlineTextItemLabelStyleテキスト入力フィールドに入力された文字のラベル
          <label class="control-label">
          にのみ適用したいstyle
          inlineFieldStyleテキスト入力フィールドに入力された文字と、チェックボックスのラベル
          <span class="input-group">
          に適用したいstyle
          inlineTextFieldStyleテキスト入力フィールドに入力された文字
          <span class="input-group">
          に適用したいstyle
          ただし、内包される<div class="checkbox">には適用しない
          (個別の指定が必要な場合)
          inlineItemErrorStyleエラーメッセージ
          <div class="field-error">
          に適用したいstyle
          inlineTextErrorStyleエラーメッセージ
          <div class="field-error">
          に適用したいstyle
          ただし、内包される<div class="checkbox">には適用しない
          (個別の指定が必要な場合)
          inlineFieldInvalidStyleテキスト入力フィールドに入力された文字が、無効と判定された場合
          <input class="form-control input-sm">
          に適用したいstyle
          inlineTextFieldInvalidStyleテキスト入力フィールドに入力された文字が、無効と判定された場合
          <input class="form-control input-sm">
          に適用したいstyle
          ただし、内包される<div class="checkbox">には適用しない
          (個別の指定が必要な場合)
          inlineTextToggleInvalidStyle<div class="checkbox">が無効のまま送信されようとした時に適用したいstyle
          (個別の指定が必要な場合)
          inlineFieldForcusStyleテキスト入力フィールドがフォーカスされた時に
          <span class="input-group-focus">
          に適用したいstyle
          inlineTextFieldForcusStyleテキスト入力フィールドがフォーカスされた時に
          <span class="input-group-focus">
          に適用したいstyle
          ただし、内包される<div class="checkbox">には適用しない
          (個別の指定が必要な場合)
          inlineToggleFieldForcusStyle<div class="checkbox">がフォーカスされた時に適用したいstyle
          (個別の指定が必要な場合)
          記述ルールについては免責事項を参照してください

          コールバック

          ウィジェットのページに記載してある内容と同様です。

          17.3.3 パラメータ

          インラインフォームで扱えるパラメータは、ウィジェットで扱えるパラメータの一部です。
          そのため、個別でページ作成をしていません。

          以下より「インラインフォームで利用可」となっているもの(クレジットカードで処理できるもの)を選択し、記述してください。

          18. 認証

          本サービスのAPIは、認証の為に JWT(JSON Web Token) を利用しています。

          ヘッダで認証を行い、ペイロード部分にリクエストを記述するのが基本的な使い方です。

          アプリケーショントークンの構成

          はじめに、ガイドの初期設定に従い、アプリケーショントークン(以降「アプリトークン」)を作成してください。

          アプリケーショントークンは、「トークン」と「シークレット」の2部で構成されます。

          シークレットは、アプリトークンを作成した時だけ表示されます。
          表示されたシークレットは、くれぐれも忘れずに控えるようにしてください。

          また、このシークレットは機密情報として取り扱う必要があります。
          消費者のブラウザ上で実行されるようなフロントエンドアプリケーションのコードの中にシークレットを記述したり、インターネットで第三者が閲覧できる状態にしないでください。
          レポートの生成、ブラウザ以外の経路での課金の作成など、サービスのバックエンドでの処理で利用されることを想定している、たいへん大きな権限を行使できる情報です。

          当社では、加盟店さまのシークレットの管理上の問題に起因する事故について、一切の責任を負いかねます。

          アプリトークンの使い方

          以降、全てのページで、HTTPリクエストヘッダのAuthorizationに記述する

          • アプリトークンを「{jwt}
          • シークレットを「{secret}

          と、それぞれ記述します。

          Bearer認証の記述例

          // シークレットなし
          Bearer {jwt}
          
          // シークレットあり
          Bearer {secret}.{jwt}

          アプリトークンの種類

          管理画面からは、2種類のアプリトークンを作成可能です。
          それぞれの意味合いと役割を表にしたものが以下です。

          名前アプリトークンの権限シークレットの要否
          加盟店トランザクショントークンと課金の作成のみ不可必要
          店舗その「店舗」に対する全てのリクエストが可能ブラウザ上では不要
          バックエンドからAPIへリクエストする際には必要
          ※現在は1つの「加盟店」に対し複数の「店舗」を登録しない運用をしていますので、現実的には「加盟店」権限のアプリトークンは発行・活用の価値がありません。

          ウィジェットやインラインフォーム出力リクエストは、登録したドメインからであることを認証しています。
          管理画面で「店舗」のアプリトークンを作成する際には、ドメインを登録してください。

          19. 各機能の対比

          旧システムで利用されていた機能と類似した機能、仕様についての対比表です。
          詳細については各リンク先のページ及び、利用開始までの流れを記載した初期設定のページを確認して下さい。

          旧システム旧システムの仕様・機能新システム新システムの仕様・機能
          決済番号決済毎に自動で発番される数字8桁の番号課金ID決済毎に自動で発番されるUUID形式による番号(8桁-4桁-4桁-4桁-12桁をハイフンで区切られた英数字)
          自動課金・デフォルトではリトライは1週間後
          ・デフォルトでリトライ回数は3回
          ・課金日の午前0時30分より順次課金開始
          ・開始日指定は○日後を指定
          定期課金リトライ間隔:課金周期÷リトライ回数
          ・リトライ回数:3回
           ※初回の課金も含むため実質2回、管理画面で変更可能
          ・課金日の午前7時※より順次課金開始
          ※毎日の定期課金 および 定期課金開始日が定期課金作成日の1日後な場合に限り午前9時
          開始日指定:日付指定か〇日後を指定
          ・ステータス:こちらに記載
          自動課金の再開・課金予定日が過ぎている場合:翌日に課金、それ以降は課金周期で課金
          ・再開前:次回課金日が変更できない
          定期課金の再開・課金予定日が過ぎている場合:サイクルの開始日から計算された最も近い支払い日に課金、それ以降は課金周期で課金
          ・過去の予定された課金は行わない
          ・再開前:次回課金日が変更可能
          ・再開後のステータス:リトライ待ち
          前回失敗したリトライ待ち定期課金:リトライ間隔のリトライ日と次回課金日を比べて遅いほうの日付で課金
          回数制限付きの自動課金・初回決済:回数に含まない
          ・指定した金額が指定した回数処理される
          回数制限付きの自動課金回数指定の回数制限付き定期課金
          ・初回決済:回数に含まれる
          ・指定した合計金額を指定した回数で割った金額の課金を実行

          ②金額指定の回数制限付き定期課金
          ・初回決済:回数に含まれる
          ・指定した合計金額を指定した金額で割った回数の課金を実行
          有効性チェック・決済履歴:「有効性チェック」として情報が生成セキュリティーコード認証・トークンの種類:リカーリングトークン(recurring)」
          ・パラメータ:cvv-authorizeを指定
          ・決済履歴:「決済金額1円/オーソライズ済」で生成
          キックバック・指定したURLへGET方式で決済結果を通知
          ・管理画面に再通知機能あり
          ウェブフック・指定したURLへPOST形式で決済結果を通知
          ・管理画面にて受け取るトリガーの設定あり
          ・ウェブフックの代わりに課金状態確認のAPIで情報取得が可能
          かんたんリンク(かんたん決済)・専用の見積画面にて決済用のURL・QRを発行する機能リンクフォーム・管理画面より決済用のURL・QRを発行する機能
          リンク方式・当社決済ページへ遷移し決済する方式ウィジェット方式・当社ポップアップ型の決済フォームを表示させ決済する方式
          リンク方式のフォーム設定・管理画面>設定>フォーム設定ウィジェットの設定・管理画面>店舗>店舗名クリック>決済フォーム>ウィジェット
          送信元URL・リンク方式における決済ページへ遷移する際のリファラチェック(認証チェック)アプリトークンのドメイン・ウィジェット方式、インラインフォーム方式における認証チェック
          ・アプリトークン登録時にドメインの指定が必要
          送信元IP・ゲートウェイ方式・トークン方式の決済では事前に管理画面にIPの登録が必須シークレット・API方式の決済では決済リクエスト時にシークレットトークンが必須
          ・アプリトークン登録時のみ確認可能
          消費者への決済完了メールの送信元・加盟店様の「問合せ先メールアドレス」なりすまして送信消費者への決済完了メールの送信元・no-reply@univapay.comから送信(変更不可)
          ワンタッチCSV課金・管理画面>決済情報>決済情報ワンタッチCSV登録 からCSVデータをアップすることで一括決済が可能
          ・成功している過去1年以内の決済情報をもとに決済可能
          ・キーとなる情報:「決済番号」「電話番号」「店舗オーダー番号」
          CSV課金・管理画面>CSV課金 からCSVデータをアップすることで一括で決済が可能。
          ・CVV認証もしくは一度でも課金に成功しているリカーリングトークンをもとに決済可能
          ・キーとなる情報:「顧客ID(customer-id)」「Eメールアドレス」「リファレンスID」「リカーリングトークンID」
          決済完了メールのメール設定・オプション設定で商品毎に設定が可能通知メールテンプレート・商品毎のメール設定は商品のメタデータを活用
          ・商品にメタデータを付与することでカスタマイズ
          ・何も登録していない場合はデフォルトのメールを送信

          20. パラメータ(基本動作)

          ウィジェットの基本動作を制御するパラメータです。

          定期課金、分割払い、デザインについては別途パラメータ解説ページがあり、左メニューから閲覧可能です。(デザイン用パラメータは、「ウィジェットの設置」ページに記載)

          フィールド名について

          フィールド
          赤字は必須
          は条件付き必須
          許容する値備考省略時の値
          data-app-id
          appId
          半角英数該当店舗のアプリケーションID
          初期設定で作成したもの

          インラインフォームで利用可
          data-checkout
          checkout
          半角英処理の内容

          指定可能な値(意味):
          token(トークンのみ作成し課金しない)
          payment(トークンを作成し課金する)
          ※括弧とその中の文字は値として不要

          token,paymentはインラインフォームで利用可
          data-payment-methods
          paymentMethods
          半角英フォームで選択できる支払い方法の詳細
          カンマ区切りで複数指定可

          指定可能な値(意味):
          card(クレジットカード)
          konbini(コンビニ決済またはPay-easy)
          paidy(ペイディ)
          pay_pay_online(PayPayオンライン)
          we_chat_online(WeChatPayオンライン)
          alipay_online(Alipayオンライン)
          alipay_plus_online(Alipay+オンライン)
          bank_transfer(銀行振込)
          online指定で末尾に_onlineのつくものを一括指定

          各決済手段が利用可能な設定なら、ブランドで更に絞込み可能。
          下記パラメータを利用するなら、card, konbiniは指定不要。

          クレジット:
          visa,mastercard,jcb
          american_express,diners_club
          unionpay,maestro,discover

          コンビニ:
          seven_eleven,family_mart,lawson
          mini_stop,seico_mart,pay_easy
          daily_yamazaki,yamazaki_daily_store
          data-amount
          amount
          半角数課金額

          回数無制限の定期課金の場合は初回の額
          分割払いおよび回数制限付き定期課金の場合は合計額

          日本円以外で実際に流通する補助通貨がある場合、最小の補助通貨の額で指定(例:USD9.00の時はcent基準の900

          インラインフォームで利用可
          data-currency
          currency
          半角英通貨
          ISO 4217基準で記述

          インラインフォームで利用可
          data-token-type
          tokenType
          半角英作成するトランザクショントークンの種類

          指定可能な値(意味):
          one_time(一度だけ課金可)
          recurring(繰り返し課金可)
          subscription(定期課金)

          インラインフォームで利用可
          one_time
          data-product-codes
          productCodes
          半角英数商品コード
          未設定の値でエラー
          カンマ区切りで複数指定可
          ※複数商品の利用方法や注意点はこちら

          amount等、商品に含む情報指定時はそちらを優先
          ※商品に含まれない情報は他パラメータで併用する必要がある(以下例)
          ・初回0円の定期課金商品利用:data-cvv-authorize
          ・仮売上:data-capture

          インラインフォームで利用可
          data-product-code-quantities
          productCodeQuantities
          半角数商品コードの数
          data-product-codesを指定した場合に指定
          ※管理画面でdata-product-codesを指定した場合は管理画面上で自動で付与される
          例:data-product-codes=testcode1
            data-product-code-quantities=2
            この場合、商品コード「testcode1」の商品が2つ

          カンマ区切りで商品コードを複数指定している場合、商品コードの数もカンマ区切りで指定
          例:data-product-codes=testcode1,testcode2
            data-product-code-quantities=1,1
            この場合、商品コード「testcode1」の商品が1つ、商品コード「testcode2」の商品が1つ

          インラインフォームで利用可
          data-name
          name
          半角英数処理の完了時に、formのsubmit時やJavaScriptコールバック時に適用される「トークン」のフィールド名
          ウェブフックやAPIからの結果取得時には適用されない

          未指定時のフィールド名:
          トランザクショントークンのみ作成 univapayTokenId
          定期課金作成 univapaySubscriptionId
          課金作成 univapayChargeId
          左欄参照
          data-capture
          capture
          真偽(true/falseクレジットカードの処理時に「キャプチャ」を行うか
          falseを指定すると「オーソリ」を行う

          コンビニ決済/銀行振込の処理時には、値を不問でdata-capture-at,captureAtを有効にする

          インラインフォームで利用可
          true
          data-capture-at
          captureAt
          半角英数
          YYYYMMDD
          または
          YYMMDDThhmmss
          クレジットでauth="true"なら、この指定日に自動的にキャプチャ実行(1h後〜7D以内)
          コンビニ決済/銀行振込の場合、支払い期限日時

          注意:
          コンビニ決済で支払いの有効期限を「日時単位」で指定したい場合は、data-payment-methods/paymentMethodsを以下のみに限定

          family_mart,lawson,mini_stop
          daily_yamazaki,yamazaki_daily_store
          (セブン・イレブン、セイコーマート、Pay-Easyは時間指定無効のため除外)

          クレジット:日付のみ指定で指定日の9:00
          コンビニ決済/銀行振込:指定日の24:00
          当日で時間未指定はエラー

          インラインフォームで利用可
          しない
          data-expiration-period
          expirationPeriod
          半角英数フォームでの申込処理から支払い(振込)までの有効期限
          ISO8601 duration text で記述
          銀行振込/コンビニ決済で有効

          指定可能な値(意味):
          PxD(x日後)
          PxM(xか月後)

          インラインフォームで利用可
          P30D
          data-expiration-time-shift
          expirationTimeShift
          半角数(記号は:,+
          hh:mm:ss[+09:00]
          銀行振込/コンビニ決済で有効な、フォームでの申込処理から支払い(振込)までの有効期限のうち、時間の部分

          data-expiration-periodP1D以上の指定が必要
          「セブンイレブン」「セイコーマート/他支払(サークルK/サンクス/ペイジー)」は時刻指定が不可で、指定日の24:00まで受付
          末尾に世界標準時間との誤差を入力(日本の場合は[+09:00]

          インラインフォームで利用可
          data-email
          email
          半角英数メールアドレス
          送信した場合、入力済みの欄を表示

          インラインフォームで利用可
          data-address
          address
          真偽(true/false配送先住所
          trueで入力欄(郵便番号、都道府県、市区町村、丁目・番地、マンション名・部屋番号)を表示

          インラインフォームで利用可
          false
          data-shipping-address-country-code
          shippingAddressCountryCode
          ISO 3166-2に記載されている国コード配送先住所の国
          送信した場合、入力済みの欄を表示
          送信しなければ空欄表示

          data-address="true"address:trueなら動作

          インラインフォームで利用可
          data-shipping-address-zip
          shippingAddressZip
          制限なし配送先住所の郵便番号
          送信した場合、入力済みの欄を表示
          送信しなければ空欄表示

          data-address="true"address:trueなら動作

          インラインフォームで利用可
          data-shipping-address-state
          shippingAddressState
          制限なし配送先住所の都道府県
          送信した場合、入力済みの欄を表示
          送信しなければ空欄表示

          data-address="true"address:trueなら動作

          インラインフォームで利用可
          data-shipping-address-city
          shippingAddressCity
          制限なし配送先住所の市区町村
          送信した場合、入力済みの欄を表示
          送信しなければ空欄表示

          data-address="true"address:trueなら動作

          インラインフォームで利用可
          data-shipping-address-line1
          shippingAddressLine1
          制限なし配送先住所の丁目・号・番地
          送信した場合、入力済みの欄を表示
          送信しなければ空欄表示

          data-address="true"address:trueなら動作

          インラインフォームで利用可
          data-shipping-address-line2
          shippingAddressLine2
          制限なし配送先住所のマンション名・部屋番号
          送信した場合、入力済みの欄を表示
          送信しなければ空欄表示

          data-address="true"address:trueなら動作

          インラインフォームで利用可
          data-require-name
          requireName
          真偽(true/falsetrue指定で、氏名の入力欄を表示(入力必須)
          Paidy、コンビニ決済、銀行振込では既存のため無効
          false
          data-require-email
          requireEmail
          真偽(true/falsetrue指定で、メールアドレスの入力欄を表示(入力必須)
          クレジットカード、コンビニ決済では既存のため無効
          false
          data-require-phone-number
          requirePhoneNumber
          真偽(true/falsetrue指定で、電話番号の入力欄を表示(入力必須)

          インラインフォームで利用可
          false
          data-phone-number
          phoneNumber
          半角数(ハイフンなし)電話番号
          送信した場合、入力済みの欄を表示
          ※電話番号を必須にしている場合のみ
          data-require-billing-address
          requireBillingAddress
          真偽(true/falsetrue指定で、請求先住所の入力欄を表示(入力必須)false
          data-cvv-authorize
          cvvAuthorize
          真偽(true/falsetrue指定で、セキュリティコード認証の実行
          クレジット決済のみ有効

          カード情報の登録のみ:data-checkout="token"data-token-type="recurring" を指定
          初回0円の定期課金を作成:data-checkout="payment"data-token-type="subscription"(または"recurring" ) を指定

          なおセキュリティコードは本サービスで保存していません

          インラインフォームで利用可
          false
          data-show-cvv
          showCvv
          真偽(true/falsefalse指定でセキュリティコード認証欄を非表示化
          クレジット決済のみ、かつ審査時にセキュリティコード認証を「必須」と指定されていない場合のみ有効

          インラインフォームで利用可
          true
          data-locale
          locale
          半角英表示される言語
          auto(ブラウザ依存),en-us(米国英語),ja-jp(日本語),zh-tw(台湾繁体字),zh-cn(中国簡体字),en(英国英語),ja(日本語),zh(中国語簡体字),ko(韓国語),th(タイ語),ru(ロシア語)

          インラインフォームで利用可
          data-univapay-reference-id
          univapayReferenceId
          半角英数リファレンスID
          CSV課金時の検索キー
          data-token-type="recurrring"なら有効

          インラインフォームで利用可
          data-univapay-customer-id
          univapayCustomerId
          半角英数
          (UUID)
          UUID形式で定義したカスタマーID
          クレジットカード決済でのみ有効

          このフィールドを初回の決済時に設定しておくと、リカーリングトークンの作成を消費者に任意選択させるチェックボックスを表示
          ※1

          用途:
          次回以降、カスタマーIDをパラメータに持つタグ(コード)でウィジェットを表示した場合、過去に同加盟店で利用したクレジットカード情報を選択して決済することが可能

          data-univapay-customer-id指定時のトークンタイプについて
          one_time 指定か省略の場合
           チェック(※1)なしでone_timeトークンを作成
           チェック(※1)ありでrecurringトークンを作成
          recurring 指定の場合
           チェック(※1)必須でrecurringトークンを作成

          インラインフォームで利用可
          data-auto-submit
          autoSubmit
          真偽(true/falsetrue指定で、完了ボタンを押下しフォームを閉じた時にformで指定したURLページに自動で消費者を遷移させるのと同時に、HTTP GETメソッドで以下を送信

          トランザクショントークン(data-checkout-type=“token”指定時には univapayTokenId

          決済番号(data-checkout-type=“payment” 指定時には univapayChargeIddata-token-type=“subscription” 指定時には univapaySubscriptionId
          false
          data-auto-close
          autoClose
          真偽(true/falsetrue指定で、処理の完了後にウィジェットが自動的に閉じるfalse
          data-remove-checkout-button-after-charge
          removeCheckoutButtonAfterCharge
          真偽(true/falsetrue指定で、処理の完了後もウィジェットの起動ボタン表示を維持
          false指定で消去
          true
          data-usage-limit
          usageLimit
          半角英作成したrecurrringタイプのトークンに対する課金の制限期間
          期間中に1度だけの課金が許容される
          変更不可(新しいトークン作成が必要)

          指定可能な値:
          daily, weekly, monthly, annually

          インラインフォームで利用可
          data-show-logo
          showLogo
          真偽(true/falseウィジェットに店舗のロゴを表示するかどうか
          ※幅が5px以下の場合にロゴは非表示
          true
          data-timeout
          timeout
          半角数指定した秒数が経過するとウィジェットを閉じてタイムアウトのエラー画面を表示
          data-auto-close-on-error
          autoCloseOnError
          真偽(true/falsedata-timeoutを指定した場合
          タイムアウトのエラー画面を表示してから約3秒後にその画面を自動で閉じる
          data-hide-recurring-checkbox
          hideRecurringCheckbox
          真偽(true/falsedata-token-typeをrecurringに指定した場合のウィジェットに「個人情報の同意」のチェックボックスを表示するかどうか

          指定可能な値(意味):
          true(非表示にする)
          false(表示する)

          インラインフォームで利用可
          false
          data-hide-privacy-link
          hidePrivacyLink
          真偽(true/falseウィジェットに表示される「個人情報の取り扱いについて」のリンクを表示するかどうか

          指定可能な値(意味):
          true(非表示にする)
          false(表示する)

          インラインフォームで利用可
          false
          data-custom-field-hoo
          customFieldHoo
          半角英hoo部分の指定次第で、追加の入力欄を表示

          指定可能な値(意味):
          labels(入力欄のラベル)
          typesselect/stringで選択肢/入力欄)
          requiredtrue/falseで必須/任意)
          optionstypeselectなら必須、;区切りで選択肢)
          keys (メタデータのキー)
          data-metadata
          metadata
          半角英消費者やオーダーを個別に識別する場合などに使える「メタデータ」

          既存フィールドと重複しないよう注意
          フィールド名はケバブケースで記述
          例:data-metadata=”foo-bar:"baz" と指定した場合、追加されるメタデータは{“foo-bar”:"baz"}

          1つのフィールドに対して複数の値を指定したい場合は「\,」で、複数のフィールドに同じ値を指定したい場合には「,」区切りで記述
          data-hoo半角英任意の用途で利用できる、任意のフィールド

          既存フィールドと重複しないよう注意

          フィールド名はローワーキャメルケースで記述
          例:data-hoo-bar=”baz" と指定した場合、追加される任意データは{“hooBar”:"baz"}

          ※JavaScriptでは利用不可
          • data-で始まる、ケバブケース(kebab-case)で記載のフィールド名はHTML用
          • 2行目にローワーキャメルケース(lowerCamelCase)で記載のフィールド名はJavaScript用
          • いずれかしか記載のないものは、いずれかのみで利用可能

          21. 初期設定

          本サービスを利用するためには、いくつかの設定を管理画面で行う必要があります。
          このページでは、利用開始までの大まかな流れを説明します。

          1. アプリトークンの作成

          アプリトークンとは、どの店舗で決済を行うかの判別のためのキーとして機能します。
          全ての決済でアプリトークンは必須です。

          管理画面>アプリトークンの「新規作成」を押下し「店舗」のアプリトークンを作成してください。
          利用方法によってアプリトークン作成時の行動および次に読むページが異なるため、以下を参照ください。

          利用方法アプリトークン作成時の行動次に読むべきページ
          システム連携せずに利用
          (リンクフォームを利用)
          シークレットを控えておく必要はありません。利用ガイド『管理画面の使い方』を参照ください。
          このページを以降読む必要はありません。
          システム連携して利用
          (ウィジェット、インラインフォームを利用)
          シークレットを控えておく必要はありません。
          利用するWEBサイトのドメインを登録する必要があります。
          このページを読み進めてください。
          システム連携して利用
          (APIでリクエスト)
          シークレットを控えておく必要があります。このページを読み進めてください。

          2. ウェブフックの作成(任意)

          ウェブフックを作成すると、本サービスでの処理結果を、加盟店さまが指定したURLにHTTP POSTリクエストで通知するようになります。
          消費者の遷移とは近いタイミングで実行しますが、必ずしも同期するとは限りません。

          加盟店さま側のシステム(カートや受注管理のシステム)と連携したい場合は作成してください。

          ただし、ウェブフックはあくまでも即時性を担保するための簡易的な仕組みで、到達を保証するものではないため、決済結果の判定をウェブフックのみに依存することは非推奨です。
          精度の高い判定を求める場合は、APIへ決済結果取得をリクエストする仕組みを設計、実装してください。

          画面遷移のコントロールがしたい場合は、ウィジェットやインラインフォームからのコールバック、リンクフォームからのリダイレクト設定でも可能です。

          ウェブフックを受信する仕組みの作成には、SDKを利用できます。

          メールや管理画面で処理結果を確認するので十分なら、この設定は必要ありません。

          ※詳細はこちら

          3. 決済フォームと課金方式の種類を選ぶ

          アプリトークンとウェブフックを作成した後は、サイト構成やサービス内容に沿った、当社の決済フォームと課金方式を選びます。

          ①決済フォームの種類を選ぶ

          • ウィジェット(全ての支払い方法が利用可能)
          • インラインフォーム(クレジットカードのみ利用可能)
          • リンクフォーム(全ての支払い方法が利用可能)

            ※各決済フォームの詳細、選び方についてはこちら

          ②課金方式を選ぶ

          • 都度課金(全ての支払い方法で可能)
          • 定期課金(クレジットカード/Paidy で可能)
          • リカーリング課金(クレジットカード/銀行振込/コンビニ決済/Paidy で可能)

            ※各課金方式の詳細、選び方についてはこちら

          4. 各種フォームの設置

          実際に消費者が利用するフォームを作成、設置します。
          詳細は、各決済フォームのセットアップページをご覧ください。

          それぞれのセットアップにはSDKが利用できます。

          5. 決済フォームを公開する

          公開前には、必ずテストモードでフォームが意図した通りに動作しているかを確認してください。(テストモードのアプリトークンを作成することでテスト決済が可能です)
          ※クレジット決済の場合は管理画面の「テスト課金」にあるカード番号でテストができます。 

          行われた決済は管理画面で確認・操作が可能です。

          管理画面の使い方はこちらをご覧ください。

          22. パラメータ(定期課金)

          ウィジェットで定期課金登録をする際に、定期課金の挙動を指定するパラメータです。

          基本動作、分割払い、デザインについては別途パラメータ解説ページがあり、左メニューから閲覧可能です。(デザイン用パラメータは、「ウィジェットの設置」ページに記載)

          フィールド名について

          • data-で始まる、ケバブケース(kebab-case)で記載のフィールド名はHTML用
          • 2行目にローワーキャメルケース(lowerCamelCase)で記載のフィールド名はJavaScript用
          • いずれかしか記載のないものは、いずれかのみで利用可能
          フィールド
          赤字は必須
          は条件付き必須
          許容する値備考省略時の値
          data-subscription-period
          subscriptionPeriod
          半角英定期課金の間隔

          指定可能な値(意味):
          daily(毎日)
          weekly(毎週)
          biweekly(隔週)
          monthly(毎月)
          bimonthly(隔月)
          quarterly(3ヶ月)
          semiannually(6ヶ月)
          annually(毎年)
          基本動作data-token-type="subscription"指定なら必須

          さらに詳細な指定(意味):
          PxD(x日周期)
          PxW(x週間周期)
          PxM(xヶ月周期)
          PxY(x年周期)

          インラインフォームで利用可
          data-subscription-id
          subscriptionId
          半角英数継続中の定期課金IDを指定することで、登録されたカード情報を変更
          data-checkout="token"の指定が必須、data-app-id以外のパラメータは不要

          必須: いいえ
          指定可能な値: アプリケーショントークンに紐付いたストアに作成されている定期課金のID

          インラインフォームで利用可
          data-subscription-plan
          subscriptionPlan
          半角英「回数指定型」の定期課金を指定する際に必要

          指定可能な値(意味):
          fixed_cycles(指定した回数に達するまで)
          fixed_cycle_amount(指定した金額に達するまで)
          fixed_cycle_amount指定で端数が出た場合、最終回は端数のみ課金

          インラインフォームで利用可
          data-subscription-qty
          subscriptionQty
          半角数data-subscription-plan="fixed_cycles"なら、支払の回数(初回課金を含む)
          data-subscription-plan="fixed_cycle_amount"なら、課金ごとの金額
          data-subscription-planでいずれかの値を指定すると必須

          インラインフォームで利用可
          data-subscription-initial-amount
          subscriptionInitialAmount
          半角数定期課金の、初回金額
          0指定で初回は「カード登録のみ」実行(セキュリティコード認証の併用必須)

          インラインフォームで利用可
          基本動作のdata-amountで指定した額
          data-subscription-start
          subscriptionStart
          半角数ハイフン区切り
          YYYY-MM-DD
          作成された定期課金の2回目の課金を行う日付

          インラインフォームで利用可
          data-subscription-start-in
          subscriptionStartIn
          半角英数定期課金の2回目の課金が行われるまでの期間

          指定可能な値(意味):
          PxD(x日後)
          PxW(x週間後)
          PxM(xか月後)
          PxY(x年後)

          インラインフォームで利用可
          data-subscription-periodに従う
          data-subscription-start-day-of-month
          subscriptionStartDayOfMonth
          半角英数
          (1〜31)
          定期課金の2回目の課金を行う日付

          data-subscription-start-in/startInとの組み合わせも可能
          例:
          startDayOfMonth=20&startIn=P2M
          翌々月(2か月後)の20日

          startIn未設定の場合は、当月の該当日以前であれば当月にも課金され、該当日以降であれば翌月の該当日に課金されます

          インラインフォームで利用可
          data-subscription-periodに従う
          data-subscription-preserve-end-of-month
          subscriptionPreserveEndOfMonth
          真偽(true/falsetrueで、かつ、開始日に月の末日を指定した場合、以降の課金日を末日に固定する

          例:
          開始日が2018-06-30の場合、次の請求はtrueの場合は2018-07-31
          falseの場合は2018-07-30となります。
          periodが月単位時のみ有効

          インラインフォームで利用可
          false
          data-subscription-retry-interval
          subscriptionRetryInterval
          半角英数定期課金が失敗したときのリトライ間隔
          ISO 8601 duration 形式で記述
          P1D以上かつ定期課金サイクルより短くないとエラー

          指定可能な値(意味):
          PxD(x日)
          PxW(x週間)
          PxM(xか月)

          インラインフォームで利用可
          定期課金の周期÷リトライ回数の間隔
          (余り切捨)
          表記ルールについては免責事項を参照してください

          23. 課金

          23.1 課金 - 概要

          トランザクショントークンを作成して消費者の決済情報を収集した後、決済を完了するために課金(Charge)を作成します。
          課金(Charge)は、非同期処理されるので、作成時には、pending状態になっています。
          決済処理の完了後、ステータスは、結果に応じてsuccessfulfailederrorに変更されます。
          ※海外カード会社に接続している場合は作成時authorized状態になります。
          ウェブフックCHARGE_FINISHEDイベントを登録することで課金(Charge)の最終的な状態を得ることができます。
          ロングポーリングを行って課金の状態を取得することもできますが、最終的な状態を返すことは保証できません。

          オーソリ

          オーソリ(Authorization)は、支払い方法がクレジットカードの時に利用でき、そのクレジットカードが実際に利用可能かどうかを確認し、与信枠の確保を行います。この状態だと実際の売り上げにはなりません。
          その後、キャプチャを行うことで決済を確定します。

          オーソリを行うには、課金の作成時に capture パラメータを false に指定して課金を作成します。
          この際に、 capture_at パラメータで自動的にキャプチャを行う日時を指定することもできます。

          ステータス

          • pending:課金が作成された時の状態
          • authorized:カード会社により承認された状態
          • failed:オーソリは有効期限切れや与信枠の不足など、様々な理由により失敗した状態
          • error :タイムアウト、通信エラー、入力形式違反、接続先からのレスポンスが無いなど、様々な理由により失敗した状態

          キャプチャを行うには、authorized 状態の課金に対してキャプチャのリクエストを送信します。
          詳細は課金のキャプチャの作成を参照してください。

          キャプチャを行わない場合は、キャンセルして与信枠を解放する必要があります。

          テストカード

          テストモードのアプリケーショントークンで課金(Charge)を行う場合には、成功または失敗を意図的に発生させるための特別なテスト用のカード番号があります。

          • 4000020000000000:課金(Charge)、返金(Refund)ともに成功
          • 1111で終わるカード番号(4111111111111111など):課金(Charge)失敗
          • 4242で終わるカード番号(4242424242424242など):課金(Charge)は成功、返金(Refund)が失敗
          • 1881で終わるカード番号(4012888888881881など):課金(Charge)は成功、取り消し(Cancel)が失敗

          その他の番号もカード発行ロジックに沿ったものであれば課金(Charge)も返金(Refund)も成功します。
          このようなサイトで、ランダムなテスト用カード番号を生成することができます

          “charge” オブジェクトのデータ構造

          フィールド名データ型備考
          idstring (UUID)課金のユニークID
          store_idstring (UUID)課金(Charge)が行われたストアのユニークID
          transaction_token_idstring (UUID)課金(Charge)を実行するために使用されるトークンのユニークID
          transaction_token_typestringtransaction_token_id のトランザクショントークンの種別
          subscription_idstring (UUID)この課金(Charge)が作成された定期課金(Subscription)のユニークID
          定期課金(Subscription)がなければnull
          merchant_transaction_idstring課金を作成した支払先の決済事業者に送る取引ID
          Wechat,Wechat Online,Wechat MPMで有効
          requested_amountnumberリクエストされた課金金額
          requested_currencystring (ISO-4217)リクエストされた課金通貨
          requested_amount_formattedstring補助単位があればその小数の値を含む課金のリクエスト金額
          charged_amountnumber課金(Charge)された金額
          リクエストされた金額とは異なる場合あり
          通貨の変換について
          charged_currencystring (ISO-4217)課金(Charge)された通貨
          リクエストされた通貨とは異なる場合があり
          通貨の変換について
          charged_amount_formattedstring補助単位があれば小数の値を含む課金された金額
          only_direct_currencybooleanリクエストされた通貨をサポートするゲートウェイのみを使用すべきかどうか
          capture_atstring (ISO-8601)自動的にキャプチャされる日時
          descriptorstring請求名
          descriptor_phone_number※現在使用されていないパラメータ
          statusstring課金ステータス
          pendingawaitingsuccessfulfailederrorauthorizedcanceled のいずれか
          error は異常な状態を表しサポートチームが課金のレビューを行った後に、ステータスが変更される可能性あり
          error.codestring課金が失敗またはエラーになった理由を表すエラーコード
          error.messagestring課金が失敗した理由
          error.detailstring課金が失敗した詳細理由
          metadatajson課金(Charge)に紐づいているメタデータ
          定期課金(Subscription)で作成されたメタデータはそれに関連する課金に引き継がれる
          modestringliveまたはtest
          created_onstring (ISO-8601)課金が作成された日時
          redirect.redirect_idstring (UUID)リダイレクトリクエストのユニークID
          redirect.endpointstring (URL)支払い完了後にリダイレクトするURL
          transaction_idnumber GMOあおぞらネット銀行から発行される取引ID
          bank_ledger_typestringdepositまたはpayment
          depositは入金、paymentは入金に従って決済システム側で支払い処理を行うことをそれぞれ指す
          balancenumber合計入金金額
          virtual_bank_account_holder_namestring 振込先口座名義
          virtual_bank_account_numbernumber 振込先口座番号
          virtual_account_idnumberGMOあおぞらネット銀行から発行される口座ID
          transaction_datestring処理日
          transaction_timestampstring処理日時

          23.2 課金 - リクエスト

          23.2.1 課金 - CREATE

          課金オブジェクトに対するCREATEリクエストには以下が必要です。(括弧内は入力箇所)

          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request POST \
          --url https://api.univapay.com/charges \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'Content-type: application/json' \

          利用できるパラメータ

          リクエストのbodyに含めることができるパラメータは以下です。

          フィールド名
          赤字は必須
          は条件付き必須
          データ型備考
          transaction_token_idstring (UUID)トランザクショントークンのID
          amountnumber 課金額
          currencystring (ISO-4217) 通貨
          captureboolean支払いをキャプチャするかどうか
          false:課金承認のみ
          デフォルトの値:true
          capture_atstring (ISO-8601)記入されたトランザクショントークンのpayment_type
          ・ payment_type=card
           - capturefalseの場合、最初に課金を承認し、指定された日時に請求をキャプチャ
          payment_type=konbinibank_transfer
           - 支払期限の日時を設定できます。
            トランザクションの支払い期間よりこちらを優先します。
          ※「セブンイレブン」「セイコーマート/他支払(サークルK/サンクス/ペイジー)」は時刻指定が利用できないため、時刻は無視されその日までという扱いになります。
          merchant_transaction_idstring支払先の取引ID
          取引IDは一意である必要があり、決済ブランドが指定する条件を満たす必要あり
          以下の支払先で利用可能
          – we_chat (最大32 英数字)
          – we_chat_mpm (最大32 英数字)
          – we_chat_online (最大32 英数字)
          metadataobjectメタデータを参照
          redirect.endpointstring (URL)支払い完了後にリダイレクトするURL
          顧客はGET httpメソッドで指定されたエンドポイントにリダイレクトされる
          univapayChargeIdとunivapayTokenIdに加えて、課金作成時に指定されたメタデータ(作成後に変更された追加メタデータは含まれない)がクエリパラメータの一部として自動的に送信される
          また、クエリパラメータをURL末尾に追加することも可能
          ※以下の支払いブランドでのみ利用可能
          alipay_online,alipay_plus_online,pay_pay_online

          Bodyの記述例

          curl --request POST \
          --url https://api.univapay.com/charges \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'Content-type: application/json' \
          --data '{
          "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
          "amount": 1000,
          "currency": "JPY",
          "metadata": {
              "order_id": 12345,
              "shipping_details": "Customer wants it now"
            },
          "redirect": {
              "endpoint": "https://test.url/"
            }
          }'
          

          レスポンス

          下記はBodyの記述例でリクエストした場合の例です。

          CodeとHeader

          • Code:201
          • Header:Content-Type: application/json

          Body

          {
              "id": "11ef32c2-4010-a312-aaff-4b63e4d5f92d",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
              "transaction_token_type": "recurring",
              "subscription_id": null,
              "merchant_transaction_id": null,
              "requested_amount": 1000,
              "requested_currency": "JPY",
              "requested_amount_formatted": 1000,
              "charged_amount": null,
              "charged_currency": null,
              "charged_amount_formatted": null,
              "fee_amount": null,
              "fee_currency": null,
              "fee_amount_formatted": null,
              "only_direct_currency": false,
              "capture_at": null,
              "descriptor": null,
              "descriptor_phone_number": null,
              "status": "pending",
              "error": null,
              "metadata": {
                  "order_id": 12345,
                  "shipping_details": "Customer wants it now"
              },
              "mode": "test",
              "created_on": "2024-06-25T07:12:15.16452Z",
              "redirect": {
                  "endpoint": "https://test.url/",
                  "redirect_id": "11ef32c2-40cf-f772-8325-1798abb1110d"
              }
          }

          23.2.2 課金 - GET

          課金オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

          • 店舗ID(URLの{storeId}部分)
          • 課金ID(URLの{chargeId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId} \
          --header 'Authorization: Bearer {secret}.{jwt}'

          利用できるパラメータ

          リクエストURLに追加できるクエリパラメータは以下です。

          フィールドデータ型備考
          pollingboolean値をtrueと指定することで、ステータスが pending(初期ステータス)から別のステータスに変更されるまで、課金のステータスを内部でポーリングするようにAPIに指示する
          詳細はこちら

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c2-4010-a312-aaff-4b63e4d5f92d \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

          下記は記述例でリクエストした場合の例です。

          CodeとHeader

          • Code:200
          • Header:Content-Type: application/json

          Body

          {
              "id": "11ef32c2-4010-a312-aaff-4b63e4d5f92d",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
              "transaction_token_type": "recurring",
              "subscription_id": null,
              "merchant_transaction_id": null,
              "requested_amount": 1000,
              "requested_currency": "JPY",
              "requested_amount_formatted": 1000,
              "charged_amount": 1000,
              "charged_currency": "JPY",
              "charged_amount_formatted": 1000,
              "fee_amount": null,
              "fee_currency": null,
              "fee_amount_formatted": null,
              "only_direct_currency": false,
              "capture_at": null,
              "descriptor": null,
              "descriptor_phone_number": null,
              "status": "successful",
              "error": null,
              "metadata": {
                  "shipping_details": "Customer wants it now",
                  "order_id": 12345
              },
              "mode": "test",
              "created_on": "2024-06-25T07:12:15.16452Z",
              "redirect": {
                  "endpoint": "https://test.url/",
                  "redirect_id": "11ef32c2-40cf-f772-8325-1798abb1110d"
              }
          }

          23.2.3 課金 - GET(銀行振込)

          銀行振込の課金オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

          • 店舗ID(URLの{storeId}部分)
          • 課金ID(URLの{chargeId}部分)
          • シークレット(Headerの{secret}部分)
          • 加盟店種類のアプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/bank_transfer_ledgers \
          --header 'Authorization: Bearer {secret}.{jwt}'

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c4-9ea8-169c-a6c8-bfc29867a226/bank_transfer_ledgers \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

          下記は記述例でリクエストした場合の例です。

          CodeとHeader

          • Code:200
          • Header:Content-Type: application/json

          Body

          {
              "items": [
                  {
                      "bank_ledger_type": "payment",
                      "amount": 1000,
                      "balance": 0,
                      "virtual_bank_account_holder_name": "test holder name",
                      "virtual_bank_account_number": "1234567",
                      "virtual_account_id": "test account id",
                      "transaction_date": "2024-06-25",
                      "transaction_timestamp": "2024-06-25T07:29:16.367347Z",
                      "mode": "test",
                      "created_on": "2024-06-25T07:29:16.373181Z"
                  },
                  {
                      "bank_ledger_type": "deposit",
                      "amount": 1000,
                      "balance": 1000,
                      "virtual_bank_account_holder_name": "test holder name",
                      "virtual_bank_account_number": "1234567",
                      "virtual_account_id": "test account id",
                      "transaction_date": "2024-06-25",
                      "transaction_timestamp": "2024-06-25T07:29:16.36731Z",
                      "mode": "test",
                      "created_on": "2024-06-25T07:29:16.368093Z"
                  }
              ],
              "has_more": false,
              "total_hits": 2
          }

          23.2.4 課金 - LIST

          課金オブジェクトのLISTリクエストには以下が必要です。(括弧内は入力箇所)
          リクエストURLにクエリパラメータを追加することで、表示するリソースを絞り込むこともできます。
          課金・返金などをまとめて表示させたい場合はトランザクション:Listを推奨します。

          • 店舗ID(URLの{storeId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/charges \
          --header 'Authorization: Bearer {secret}.{jwt}'
          すべての店舗を表示する場合
          curl --request GET \
          --url https://api.univapay.com/charges \
          --header 'Authorization: Bearer {secret}.{jwt}'

          利用できるパラメータ

          リクエストURLに追加できるクエリパラメータは以下です。

          フィールドデータ型備考
          last_fournumber使用したクレジットカードの下4桁でフィルタリング
          指定する場合はnameexp_monthexp_yearフィールドを含める必要あり
          namestringカード所有者の名前でフィルタリング
          指定する場合はlast_fourexp_monthexp_yearフィールドを含める必要あり
          exp_monthnumber使用したカードの有効期限(月)でフィルタリングする
          指定する場合はlast_fournameexp_yearフィールドを含める必要あり
          exp_yearnumber使用したカードの有効期限(年)でフィルタリングする
          指定する場合はlast_fournameexp_monthフィールドを含める必要あり
          fromstring (ISO-8601)この日付以降に作成された課金を表示
          tostring (ISO-8601)この日付より前に作成された課金を表示
          emailstringメールアドレスでフィルタリング
          phonenumber電話番号でフィルタリング
          amount_fromnumberこの金額より大きい課金を表示
          amount_tonumberこの金額未満の課金を表示
          currencystring (ISO-4217)この通貨でリクエストまたはチャージされた課金をフィルタリング
          modestringモードでフィルタリングする
          live または test
          metadatastringメタデータでフィルタリング
          transaction_token_idstring (UUID)トランザクショントークンIDでフィルタリング

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges \
          --header 'Authorization: Bearer {secret}.{jwt}'
          すべての店舗を表示する場合
          curl --request GET \
          --url https://api.univapay.com/charges \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

          下記は記述例でリクエストした場合の例です。

          CodeとHeader

          • Code:200
          • Header:Content-Type: application/json

          Body

          {
              "items": [
                  {
                      "id": "11ef32c4-9ea8-169c-a6c8-bfc29867a226",
                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                      "transaction_token_id": "11ef32c4-9e89-0cac-bd63-17b9a26af61b",
                      "transaction_token_type": "one_time",
                      "subscription_id": null,
                      "merchant_transaction_id": null,
                      "requested_amount": 1000,
                      "requested_currency": "JPY",
                      "requested_amount_formatted": 1000,
                      "charged_amount": 1000,
                      "charged_currency": "JPY",
                      "charged_amount_formatted": 1000,
                      "fee_amount": null,
                      "fee_currency": null,
                      "fee_amount_formatted": null,
                      "only_direct_currency": false,
                      "capture_at": null,
                      "descriptor": null,
                      "descriptor_phone_number": null,
                      "status": "successful",
                      "error": null,
                      "metadata": {
                          "univapay-name": "taro yamada",
                          "univapay-phone-number": 8029854583
                      },
                      "mode": "test",
                      "created_on": "2024-06-25T07:29:12.854865Z",
                      "redirect": {},
                      "merchant_name": "管理画面ガイド",
                      "store_name": "管理画面ガイド_TEST店舗"
                  },
                  {
                      "id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                      "transaction_token_id": "11ef32c3-3cdd-df92-9dce-c346b9fdf088",
                      "transaction_token_type": "one_time",
                      "subscription_id": null,
                      "merchant_transaction_id": null,
                      "requested_amount": 1000,
                      "requested_currency": "JPY",
                      "requested_amount_formatted": 1000,
                      "charged_amount": 1000,
                      "charged_currency": "JPY",
                      "charged_amount_formatted": 1000,
                      "fee_amount": null,
                      "fee_currency": null,
                      "fee_amount_formatted": null,
                      "only_direct_currency": false,
                      "capture_at": null,
                      "descriptor": null,
                      "descriptor_phone_number": null,
                      "status": "successful",
                      "error": null,
                      "metadata": {},
                      "mode": "test",
                      "created_on": "2024-06-25T07:19:19.507637Z",
                      "redirect": {
                      "shipping_details": "Customer wants it now",
                      "order_id": 12345
                  },
                      "merchant_name": "管理画面ガイド",
                      "store_name": "管理画面ガイド_TEST店舗"
                  },
          
          <中略>        
          
              ],
              "has_more": true,
              "total_hits": 99
          }

          23.2.5 課金 - UPDATE

          課金オブジェクトに対するUPDATEリクエストには以下が必要です。(括弧内は入力箇所)
          作成済の課金に任意のメタデータを付与、または変更したい場合はこのリクエストを使用してください。

          • 店舗ID(URLの{storeId}部分)
          • 課金ID(URLの{chargeId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request PATCH \
          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId} \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'content-type: application/json' \

          利用できるパラメータ

          リクエストのbodyに含めることができるパラメータは以下です。

          フィールドデータ型備考
          metadataobject課金に紐づいているメタデータ

          Bodyの記述例

          curl --request PATCH \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c2-4010-a312-aaff-4b63e4d5f92d \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'content-type: application/json' \
          --data '{"metadata": {"order_id": 1234}}'

          レスポンス

          下記はBodyの記述例でリクエストした場合の例です。

          CodeとHeader

          • Code:200
          • Header:Content-Type: application/json

          Body

          {
              "id": "11ef32c2-4010-a312-aaff-4b63e4d5f92d",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
              "transaction_token_type": "recurring",
              "subscription_id": null,
              "merchant_transaction_id": null,
              "requested_amount": 1000,
              "requested_currency": "JPY",
              "requested_amount_formatted": 1000,
              "charged_amount": 1000,
              "charged_currency": "JPY",
              "charged_amount_formatted": 1000,
              "fee_amount": null,
              "fee_currency": null,
              "fee_amount_formatted": null,
              "only_direct_currency": false,
              "capture_at": null,
              "descriptor": null,
              "descriptor_phone_number": null,
              "status": "successful",
              "error": null,
              "metadata": {
                  "order_id": 1234
              },
              "mode": "test",
              "created_on": "2024-06-25T07:12:15.16452Z",
              "redirect": {
                  "endpoint": "https://test.url/",
                  "redirect_id": "11ef32c2-40cf-f772-8325-1798abb1110d"
              }
          }

          23.2.6 キャプチャ - CREATE

          課金オブジェクトに対するCREATEリクエスト(キャプチャ)には以下が必要です。(括弧内は入力箇所)
          キャプチャ金額はオーソリ時の金額以下 / 通貨はオーソリ時と同じである必要があります。

          • 店舗ID(URLの{storeId}部分)
          • 課金ID(URLの{id}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request POST \
          --url https://api.univapay.com/stores/{storeId}/charges/{id}/capture \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'Content-type: application/json' \

          利用できるパラメータ

          リクエストのbodyに含めることができるパラメータは以下です。

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          idstring (UUID) 課金ID
          store_idstring (UUID) 課金が作成された店舗ID
          amountnumber キャプチャする金額
          承認されたときの金額よりも少なくする必要あり
          currencystring (ISO-4217) ISO-4217形式の通貨コード
          承認されたときの通貨と同じである必要あり

          Bodyの記述例

          curl --request POST \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c3-3cfe-3bc0-abed-0bb96f792078/capture \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'Content-type: application/json' \
          --data '{
          "amount": 1000,
          "currency": "JPY"
          }'

          レスポンス

          下記はBodyの記述例でリクエストした場合の例です。

          Code

          • Code:200

          23.2.7 イシュアトークン - GET

          イシュアトークンオブジェクト

          イシュアトークンとは、オンライン決済事業者から提供された消費者が決済を行うための情報です。
          各決済事業者での支払いURLなどが発行されます。
          支払い手段がonlineのトランザクショントークンを使用して課金を作成した後にイシュアートークンを取得します。
          支払手段が銀行振込(bank_transfer)の場合は、対象の振込先口座情報を取得します。
          issuer_tokenが入力される前に、課金ステータスがawaitingになっている必要があります。
          awaiting以外のステータスではこのリクエストはエラーになるため、課金:GETのリクエストで、事前に課金ステータスの確認を行う必要があります。

          課金オブジェクトに対するイシュアトークンのGETリクエストには以下が必要です。(括弧内は入力箇所)

          • 店舗ID(URLの{storeId}部分)
          • 課金ID(URLの{chargeId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/issuer_token \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'content-type: application/json' \

          イシュアトークンオブジェクトのデータ構造

          レスポンスで返却されるイシュアトークンオブジェクトのデータは以下です。

          フィールドデータ型備考
          payment_typestring指定した課金の支払い手段の種類
           onlinebank_transferのいずれか
          issuer_tokenstringpayment_typeonlineのとき
          クライアントが実行するために支払いプロバイダーから提供されたトークン
          本番モードの場合各決済事業者での支払いURLが発行されます
          payloadobjectpayment_typeonlineのとき
          POSTリクエストを送信するために必要なデータを含むオブジェクトを返却
          call_methodstringpayment_typeonlineのとき
          クライアントによる実行方法
          http_gethttp_postsdkwebappのいずれか
          各ブランドで対応している方法で実行してください(詳細はこちら

          – sdkは、ペイメントプロバイダーが提供するSDKで直接使用することを意味する
          – webとは、特定のAPIを拡張した特殊なブラウザ環境で直接使用を意味する
          – appとは、ペイメントプロバイダーが提供するSDKのネイティブアプリ環境での利用を意味する
          – http_getまたはhttp_postを使用すると、issuer_tokenを新しいブラウザウィンドウまたは適切対応するHTTPメソッドのiframe内で直接実行することが可能

          ※Wechat利用時の注意点
           ・call_method がhttp_getの場合、リクエスト前に利用予定のウェブブラウザのドメインをサポートデスクへ連絡する必要あり
           ・サポートデスクへ連絡したドメインからリダイレクトしてイシュアトークンを取得する必要あり
          account_idstringpayment_typebank_transferのとき
          接続先システムで発行している口座の独自ID
          branch_codestringpayment_typebank_transferのとき
          支店コード
          branch_namestringpayment_typebank_transferのとき
          支店名
          account_holder_namestringpayment_typebank_transferのとき
          口座名義
          account_numberstringpayment_typebank_transferのとき
          口座番号

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11ecda54-17a0-1c78-bd5c-73aa272l700f/charges/11ef3398-8a6c-978e-8332-2f61a5ed40t4/issuerToken \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'content-type: application/json' \

          レスポンス

          下記は記述例でリクエストした場合の例です。

          CodeとHeader

          • Code:200
          • Header:Content-Type: application/json

          Body (online)

          {
            "issuer_token": "http://test.com/action",
            "call_method": "http_post",
            "payload": { 
               "test_parameter": "test_value"
            }
            "payment_type": "online"
          }

          Body (bank transfer)

          {
            "account_id": "test account id",
            "branch_code": "123",
            "branch_name": "test branch name",
            "account_holder_name": "test holder name",
            "account_number": "1234567",
            "payment_type": "bank_transfer"
          }

          d払いOnlineについて

          d払いOnlineを利用する場合、取得したイシュアトークンのURLに対して、レスポンスのpayloadにあるbodyの要素を含み、POST方式で実行する必要があります。
          Headerの Content-Typeは application/x-www-form-urlencoded のみ受け付ける仕様です。

          イシュアトークン取得のレスポンス例

          {
              "issuer_token": "https://payment1.smt.docomo.ne.jp/smph/trade/s/gabepa11.srv",
              "call_method": "http_post",
              "payload": {
                  "sSpcd": "00000000000",
                  "sCptok": "11eefaef-e2d6-5e3c-3cj3-7f0a72dd9ba7%2Clive%2C9f132db784f807abe60a566634a9791fc979d9b0ed330d6314a6cfb29af39cae",
                  "sTerkn": "01"
              },
              "payment_type": "online"
          }
          

          call_methodがhttp_postの場合の実行方法

          レスポンスのデータを基にPOSTリクエストを送信する場合は、下記のようなHTMLフォームを設置することで実行できます。

          <FORM METHOD="POST" ACTION="http://test.com/action">
            <INPUT TYPE="HIDDEN" NAME="test_parameter" VALUE="test_value">
          </FORM>

          24. 決済手段別 実装ガイド

          本サービスと加盟店さまの商用サイトとを連携するための実装ガイドです。
          「はじめに」を通読の上、ご覧ください。

          24.1 銀行振込 - 概要

          本サービスの銀行振込は、申込ごとに発行したユニークな口座番号への振込確認・消込を自動で行い、結果を反映する仕組みです。
          利用する口座は「GMOあおぞらネット銀行」から発行されます。
          これにより、手作業による振込確認と消込が必要なくなります。

          銀行振込でサポートしている内容は、以下を参照してください。

          課金方式

          都度課金およびリカーリング課金を利用できます。
          定期課金には利用できません。

          実装方法

          当社決済フォーム(リンクフォーム,ウィジェット)の設置と、APIでの連携が可能です。

          処理

          以下の処理は対応していないため、有効にしても無視されます。

          処理注意点
          CVV認証(CVV auth)
          仮売上
          分割払い
          無効な項目のため
          定期課金未実装な項目のため

          24.1.1 銀行振込 - 特徴

          消費者の支払いフロー

          銀行振込の申込後、指定口座に振り込むと決済が完了される流れです。
          当社決済フォームを利用した場合の消費者の支払いフローは、下記の画像付き資料を参照してください。

          消費者の支払いフロー(PDFファイル)

          課金ステータスと結果

          管理画面>決済 から申込や振込の履歴を確認できます。
          また、「ステータス」と「結果」の2つの項目の組み合わせで、支払い状況を確認できます。
          「ステータス」は決済履歴一覧および詳細画面の「課金詳細」から、「結果」は詳細画面の「支払い詳細」から確認できます。

          課金ステータスの種類

          処理待ち:口座を発行して未入金、または入金額に不足がある
          成功:申込金額以上が入金されている 超過した場合も成功として扱う
          失敗:申込金額の入金がなく、振込期限が切れた

          発生し得る「ステータス」と「結果」の組み合わせ例

          状態ステータス結果
          消費者から入金待ち(申込直後など)処理待ち未入金
          申込金額に満たない金額が入金されている
          振込期限まで同一口座に追加入金が可能
          処理待ち不足
          申込金額と同一の金額が入金されている成功丁度
          申込金額以上の金額が入金されている
          銀行振込決済では返金機能がないため、超過分は加盟店さま側で消費者への連絡・返金が必要
          成功超過
          振込期限までに入金がなかった
          振込期限を過ぎて口座が停止しているため、入金は不可
          必要な場合は新たに課金申込
          失敗未入金
          申込金額に満たない金額が入金されている
          振込期限を過ぎて口座が停止しているため、追加入金は不可
          銀行振込決済では返金機能がないため、入金分は加盟店さま側で消費者への連絡・返金が必要
          失敗不足

          処理の基本フロー

          以下フローは、管理画面>一般設定>決済サービス>決済方法>銀行振込>振込の受付 が「すべて」の場合です。

          テストモードの挙動

          テストモードでは本番モードと挙動が異なります。
          テストモードの挙動は下記のとおりです。

          リクエスト方法挙動
          ウィジェット
          リンクフォーム
          即時に課金ステータスが「成功」、結果が「丁度」になる
          API①課金ステータスが「処理待ち」になる
          ②課金の取得により「”status”: “awaiting”」を確認する
          ③イシュアトークンの取得後、課金ステータスが「成功」、結果が「丁度」の状態になる

          テストモードでリクエストすることで、メール通知とウェブフック(システム通知)を確認できます。
          テストモードで確認できる処理は上記のみで、振込期限切れによる失敗や超過入金は確認できません。

          口座の発行方法

          口座の発行方法には「ワンタイム型」と「リカーリング型」の2種類があります。

          ワンタイム型

          1度限り使用可能なトークンを生成します。このトークンに対して課金リクエストを行うと、同じ消費者であっても1決済ごとに異なる口座番号を振込先として発行します。
          そのため、毎回同じ口座番号を振込先として発行するリカーリング型と比べて、正確な入金管理を行うことができます。

          リカーリング型(口座番号固定)

          繰り返し使用可能なトークンを生成します。
          このトークンに対して課金リクエストを行うと、消費者は毎回同じ振込先口座番号を利用できます。
          リカーリングトークンは、何度でも繰り返し利用できます。

          なお、1つのトークンで入金待ちの課金申込が複数存在する場合、古い課金申込が優先で消し込まれます。

          消し込みの例

          1つのトークンで入金待ちの課金申込が2つある場合

          課金申込日課金ID金額ステータス結果入金額
          2022/1/111ed2a5e-91bd-2b04-be0c-733e06e5b0fd¥5,000処理待ち未入金¥0
          2022/1/1511ed2a5e-4523-267c-be30-b33ea12033ff¥10,000処理待ち未入金¥0

          この状態で10,000円入金された場合

          課金申込日課金ID金額ステータス結果入金額
          2022/1/111ed2a5e-91bd-2b04-be0c-733e06e5b0fd¥5,000成功丁度¥5,000
          2022/1/1511ed2a5e-4523-267c-be30-b33ea12033ff¥10,000処理待ち不足¥5,000

          2022/1/1の課金申込に5000円分が入金され、金額丁度で成功となる
          2022/1/15の課金申込に残り5,000円分が入金される

          振込期限

          管理画面で振込期限を設定できます。

          また、課金申込時にウィジェット・リンクフォーム・APIそれぞれのパラメータを指定することで、決済ごとに異なる期限を指定できます。
          各パラメータの指定方法は、利用ガイド「振込 – 要注意なパラメータ」を参照してください。
          パラメータを指定しない場合は、管理画面の振込期限が適用されます。

          振込期限を超えた課金申込はステータスが失敗となり、該当口座への振込を行うことができなくなります。

          ※「リカーリング型」は同じ口座で複数の課金申込が存在するため、該当口座に紐づく全ての課金ステータスが成功か失敗となった段階で、振込を行うことができなくなります。

          管理画面での設定方法

          一般設定>決済サービス>決済方法>銀行振込>振込のお支払い期限 から設定できます。
          設定可能な振込期限のパターンとそれに対する期限の例(1/1に申し込みを行った場合)は下記です。

          振込期限の設定振込期限
          一日1/2 23:59
          三日1/4 23:59
          一週間1/8 23:59
          二週間1/15 23:59
          四週間1/29 23:59

          振込上限額

          管理画面から振込上限額を設定することで、超過入金を防ぎ、返金対応を減らせます。

          設定方法

          管理画面>一般設定>決済サービス>決済方法>銀行振込>振込の受付 から振込上限額を設定できます。

          設定挙動
          すべて課金申込と同額以上の金額となるまで振込が可能
          超過入金を防ぐ口座に対して振込上限額が設定される
          上限を上回る振込額の場合、金融機関側で振込元口座に全額が自動返金される

          使用上の注意

          口座への入金額に応じて、振込上限額がその都度更新されます。
          そのため、「超過入金を防ぐ」を設定している場合でも、振込タイミング等により完全に防げない可能性があります。

          また、「リカーリング型」は同じ口座で複数の課金申込が存在するため、該当口座に紐づく課金申込金額の合計が振込上限額として判断されます。

          入金が反映されるタイミング

          該当口座へ入金が確認できたら、時間帯や曜日を問わずおよそ1時間以内に課金ステータスおよび結果が更新されます。
          なお、振込元金融機関の処理によっては、該当口座への入金が金融機関の翌営業日以降となる可能性があります。
          入金予定時間は、振込元の金融機関にお問い合わせください。

          結果の通知・確認

          管理画面>一般設定>一般>通知 で「銀行振込」の設定を有効にしている場合は、それぞれの処理に対応したメールが送信されます。
          結果を加盟店さまの配送(または、それに準ずる会員ステータス等の)システムに自動で反映する必要がある場合は、ウェブフックで結果を受信して注文システムを更新するプログラムを設置してください。

          ※メールおよびウェブフックでの入金結果の通知には、2時間程度かかる場合があります。
           銀行振込の場合、ウェブフックのイベントは「課金」を利用して判定してください。
           また、銀行振込 / 不足入金 の通知はメールのみ対応しています。

          また、結果はAPIへリクエストすることでも取得できます。
          システム連動を行わず、管理画面またはメールで結果を確認する場合は作成する必要はありません。

          以下では、銀行振込の各処理時に通知されるメールのテンプレートを抜粋して紹介します。

          種別説明
          銀行振込 申込完了課金申込時に送信されます。
          課金は、ステータスが処理待ち、結果が未入金の状態です。
          銀行振込 不足入金入金額が不足に送信されます。
          課金は、ステータスが処理待ち、結果が不足の状態です。
          銀行振込 入金完了入金額が丁度で、課金が成功した時に送信されます。
          課金は、ステータスが成功、結果が丁度の状態です。
          銀行振込 入金完了(超過)入金額が超過して課金が成功した時に送信されます。
          課金は、ステータスが成功、結果が超過の状態です。
          振込期限切れ(督促あり)課金失敗時に送信されます。
          課金は、ステータスが処理待ち、結果が未入金または不足の状態です。
          振込期限切れ(督促なし)課金失敗時に送信されます。
          課金は、ステータスが失敗、結果が未入金または不足の状態です。

          メンテナンスについて

          GMOあおぞらネット銀行側で、定期的にシステムメンテナンスがあります。「課金申込」「入金通知」「請求停止」「振込期限切れによる口座停止」などの処理で、エラーや処理遅延が発生する可能性があります。予めご了承ください。
          システムメンテナンス中に発生するエラーは以下です。

          エラーコードエラー説明
          503Gateway is under maintenanceメンテナンス中です
          加盟店さまが保有している口座数が足りている状態で課金作成した時
          347Assignment of virtual bank account expired銀行口座の割り当てが失効しました
          加盟店さまが保有する口座が足りず、課金作成時に新規口座取得のリクエストをGMOあおぞらネット銀行に送信した時

          24.1.2 銀行振込 - 要注意なパラメータ

          本ページは、銀行振込に対してパラメータを使用する場合に、注意すべき点の補足説明です。

          事前に読むべきページ

          このページでは、以下のページが読まれていることを前提に説明します。

          ウィジェット

          リンクフォーム

          API

          表示させる決済手段の限定

          課金作成時に以下記述をすることで、他の決済手段を含まず、銀行振込の手続きだけを消費者に行わせることができます。
          また、役割の異なるパラメータが、意図せず適用されることを防げます。

          実装方法フィールド値の例(銀行振込のみ表示させたい場合)
          ウィジェット
          (HTML / JavaScript)
          data-payment-methods /
          paymentMethods
          bank_transfer
          リンクフォームpaymentMethods[]bank_transfer

          この指定をしない場合は、利用可能なすべての決済手段が表示されます。
          全てではなく、いくつか特定の決済手段を表示させたい場合は、それぞれの決済手段を指定してください。

          独自のはたらきをするパラメータ

          銀行振込利用時に独自のはたらきをするパラメータを、抜粋して紹介します。

          振込期限の指定

          トランザクショントークン作成時および課金作成時に以下記述をすることで、任意の銀行振込の期限を指定できます。

          方法1 日時を指定

          課金作成時に以下記述をしてください。

          実装方法フィールド値の例(2023/4/3 12:34:56までの場合)
          ウィジェット
          (HTML / JavaScript)
          data-capture /
          capture
          かつ
          data-capture-at /
          captureAt
          false
          かつ
          2023-04-03T12:34:56+09:00
          APIcapture_at2023-04-03T03:34:56Z
          ※国際規格(ISO 8601)で処理するため9時間の時差があります

          方法2 間隔を指定(銀行振込 / コンビニ決済に対応)

          課金作成時に以下記述をしてください。

          実装方法フィールド値の指定例(3日後の12:34:56までの場合
          ウィジェット
          (HTML / JavaScript)
          data-expiration-period /
          expirationPeriod
          かつ
          data-expiration-time-shift /
          expirationTimeShift
          P3D
          かつ
          12:34:56+09:00
          リンクフォームexpirationPeriod
          かつ
          expirationTimeShift
          P3D
          かつ
          12:34:56+09:00
          (または12%253A34%253A56.000%252B09%253A00

          方法3 間隔を指定(銀行振込のみ対応)

          課金作成時に以下記述をしてください。

          実装方法フィールド値の指定例(3日後の12:34:56までの場合
          ウィジェット
          (HTML / JavaScript)
          data-bank-transfer-expiration-period /
          bankTransferExpirationPeriod
          かつ
          data-bank-transfer-expiration-time-shift /
          bankTransferExpirationTimeShift
          P3D
          かつ
          12:34:56+09:00
          リンクフォームbankTransferExpirationPeriod
          かつ
          bankTransferExpirationTimeShift
          P3D
          かつ
          12:34:56+09:00
          (または12%253A34%253A56.000%252B09%253A00

          24.1.3 銀行振込 - APIへのリクエスト

          本ガイドは、銀行振込における各API処理の補足説明です。

          銀行振込に必要な消費者の情報には、カード番号のような保護が必要な情報は含まれていないため、決済を行うシステムがPCI DSSに準拠していない場合でもAPIへのリクエストでトークンを作成できます。

          以下では、本サービスのウィジェットやリンクフォームを使用せず、加盟店さま側で支払ページを作成しAPIで処理する場合のフローを説明します。

          1トークン作成

          消費者の情報をトークン化して保存します。
          詳細は、APIリファレンス「トランザクショントークン – CREATE」を確認してください。

          リクエストBody例

          {
            "payment_type" : "bank_transfer",
            "type" : "one_time",
            "email" : "demo@univapay.com",
            "data" : {
              "brand" : "aozora_bank"
            },
            "metadata": {
              "memberid" : "12345"
            }
          }

          2課金作成

          作成したトークンに対して課金申込を行います。
          詳細は、APIリファレンス「課金 – CREATE」を確認してください。

          リクエストBody例

          {
            "transaction_token_id": "11ed00f1-da1b-c4d2-b420-37b91ef1b282",
            "amount": "100",
            "currency": "jpy",
            "metadata": {
              "orderid": "12345"
            }
          }

          3課金の取得

          課金申込の結果を取得します。
          詳細は、APIリファレンス「課金 – GET」を確認してください。

          "status": "awaiting"が確認できたら正常に課金申込が完了し、消費者からの振込待ちの状態です。

          ウェブフックで結果を受信することも可能です。
          (ウェブフックのイベント名はcharge_updatedです。)

          レスポンス / ウェブフック Body 例

          {
            "id": "11ed07f5-345d-4308-a4c9-9f6b3663e18f",
            "store_id": "11ec9f7f-fb01-2620-af32-af7eb1bedc1a",
            "transaction_token_id": "11ed07f5-2da0-18ce-96f7-9f06340a7a87",
            "transaction_token_type": "one_time",
            "subscription_id": null,
            "merchant_transaction_id": null,
            "requested_amount": 100,
            "requested_currency": "JPY",
            "requested_amount_formatted": 100,
            "charged_amount": 100,
            "charged_currency": "JPY",
            "charged_amount_formatted": 100,
            "only_direct_currency": false,
            "capture_at": null,
            "descriptor": null,
            "descriptor_phone_number": null,
            "status": "awaiting",
            "error": null,
            "metadata": {
              "orderid": 123456
            },
            "mode": "live",
            "created_on": "2022-07-20T06:28:44.521327Z"
          }

          4トークン取得(任意)

          課金申込後に発行した口座の支店や口座番号の情報を取得できます。
          詳細は、APIリファレンス「トランザクショントークン – GET」を確認してください。

          口座情報は、レスポンスの”data”の値として反映されます。
          口座情報が反映されるタイミングは、トランザクショントークンを作成した時ではなく、課金申込が成功して"status": "awaiting"になった時以降です。

          レスポンス Body例

          {
            "id": "11ed00f1-da1b-c4d2-b420-37b91ef1b282",
            "store_id": "11ec9f7f-fb01-2620-af32-af7eb1bedc1a",
            "email": "demo@univapay.com",
            "payment_type": "bank_transfer",
            "active": true,
            "mode": "live",
            "type": "recurring",
            "usage_limit": null,
            "confirmed": null,
            "metadata": {
              "customer_id": 12345
            },
            "created_on": "2022-07-11T08:17:06.47037Z",
            "updated_on": "2022-07-26T09:37:05.663521Z",
            "last_used_on": "2022-07-26T09:37:05.666269Z",
            "data": {
              "brand": "aozora_bank",
              "bank_code": "0310",
              "bank_name": "GMOあおぞらネット銀行",
              "branch_name": "アジサイ",
              "branch_code": "123",
              "account_holder_name": "カ)ユニヴア ペイキヤスト",
              "account_number": "1234567"
            }
          }

          5課金の取得

          APIリクエストで入金結果および振込期限切れの結果を取得します。
          詳細は、APIリファレンス「課金 – GET」を確認してください。

          ウェブフックで結果を受信することも可能です。
          (ウェブフックのイベント名はcharge_finishedです。)

          レスポンス Body例

          {
            id: "11ed00f1-f0c4-1ca2-b754-db0d9311d5a0",
            store_id: "11ec9f7f-fb01-2620-af32-af7eb1bedc1a",
            transaction_token_id: "11ed00f1-da1b-c4d2-b420-37b91ef1b282",
            transaction_token_type: "one_time",
            subscription_id: null,
            merchant_transaction_id: null,
            requested_amount: 100,
            requested_currency: "JPY",
            requested_amount_formatted: 100,   //元々の申込金額
            charged_amount: 100,
            charged_currency: "JPY",
            charged_amount_formatted: 100,   //実際の入金額
            only_direct_currency: false,
            capture_at: null,
            descriptor: null,
            descriptor_phone_number: null,
            status: "successful",
            error: null,
            metadata: {
              "orderid": 123456
            },
            mode: "live",
            created_on: "2022-07-11T08:17:44.481834Z"
          }

          状況は、課金の状態"status"および入金額"charged_amount_formatted"から確認できます。

          24.2 コンビニ決済 - 概要

          電算システムを利用した決済手段です。

          決済フォームでの情報入力が完了すると、指定したコンビニエンスストアで入金を行うための情報が発行されます。
          入金に必要な情報は、通知メールもしくはメタデータから確認可能です。
          発行された情報をもとに消費者が入金を行うと、入金確認を自動で行い、結果を反映します。

          また、管理画面の「ウェブフック」でURLを登録することによって、入金結果のシステム通知を受けることも可能です。

          コンビニ決済でサポートしている内容は、以下を参照してください。

          課金方式

          都度課金およびリカーリング課金を利用できます。
          定期課金には利用できません。

          実装方法

          当社決済フォーム(リンクフォーム,ウィジェット)の設置と、APIでの連携が可能です。

          処理

          以下の処理は対応していないため、有効にしても無視されます。

          処理無視される理由
          CVV認証(CVV auth)
          仮売上
          分割払い
          無効な項目のため
          定期課金未実装な項目のため

          24.2.1 コンビニ決済 - 特徴

          消費者の支払いフロー

          コンビニ決済の申込後、通知メールの情報を確認してコンビニで入金すると、決済が完了する流れです。
          当社決済フォームを利用した場合の消費者の支払いフローは、下記の画像付き資料を参照してください。

          消費者の支払いフロー(PDFファイル)

          課金ステータス

          管理画面>決済 から、申込や入金の履歴を確認できます。
          「ステータス」は決済履歴一覧および詳細画面の「課金詳細」から確認できます。

          課金ステータスの種類

          課金ステータス状態
          処理待ち決済フォームから申込が完了しているが、消費者から入金されていない
          もしくは入金確認中
          成功各コンビニエンスストアで消費者の入金が完了した
          キャンセル加盟店さま側で申込を取り消した状態
          失敗決済フォームでの申込時に何かしらのエラーが発生した
          もしくは入金期限を過ぎた

          テストモードの挙動

          テストモードでは本番モードと挙動が異なります。

          テストモードで決済を行った場合、申込完了の直後は「処理待ち」のステータスになります。
          その約10分後に自動的に「成功」のステータスへ変化します。

          電話番号の末尾4桁を指定することで決済結果別の挙動を確認することが可能です。

          電話番号の末尾4桁決済結果
          1111課金失敗
          4242返金失敗
          1881キャンセル失敗

          入金期限

          管理画面、ウィジェット・リンクフォーム・APIのパラメータで振込期限を設定できます。
          各パラメータの指定方法は、利用ガイド「コンビニ – 要注意なパラメータ」をご覧ください。

          入金期限を超えた課金申込は失敗となり、決済失敗メールが送信されます。

          管理画面での設定方法

          一般設定>決済サービス>決済方法>コンビニ から、入金期限(期間および時刻)を設定できます。

          • 振込のお支払期限:入金期限(期間)
          • 振込期限(時間):入金期限(時刻)

          パラメータで指定しない限り、ここでの設定が適用されます。
          デフォルトは30日、期限時間は23:59:59です。

          設定可能な入金期限のパターンとそれに対する期限の例(1/1に申し込みを行った場合)は下記です。

          入金期間の設定入金期限
          一週間1/8 23時59分までに振込
          二週間1/15 23時59分までに振込
          30日1/31 23時59分までに振込

          使用上の注意点

          下記の支払先は、時刻を指定できません。
          時刻を指定している場合は無視され、自動で23:59:59になります。

          • セブンイレブン
          • セイコーマート/他支払(サークルK/サンクス/ペイジー)

          通知メールテンプレート

          管理画面>通知メールテンプレート から、通知メールの内容を編集できます。

          新しくテンプレートを作成する場合は、「+新規作成」ボタンから行ってください。
          作成済のテンプレートを編集する場合は、一覧から任意のテンプレートを選択してください。

          デフォルト内容は、利用ガイド「通知メールテンプレート」を参照してください。

          テンプレートの種別

          以下では、コンビニ決済の処理時に通知されるメールのテンプレートを抜粋して紹介します。

          種別テンプレートの種類説明
          コンビニ決済のご案内メイン課金申込時に送信されます。
          パラメータ${date}には申込日時ではなく、入金期限が表示されます。
          コンビニ決済の取り消しメイン消費者が入金を行う前に、加盟店さま側で注文を取り消した時に送信されます。
          決済完了通知メイン支払いが完了した場合に送信されます。
          決済失敗メイン支払い期限切れの場合に送信されます。
          コンビニ決済(各支払先名)の詳細サブメインテンプレート内のパラメータ${konbini_payment_details}として内容が表示されます。
          各コンビニエンスストアでの支払い番号などの情報を含んでいて、支払先ごとに内容を編集できます。

          24.2.2 コンビニ決済 - 要注意なパラメータ

          本ページは、コンビニ決済に対してパラメータを使用する場合に、注意すべき点の補足説明です。

          事前に読むべきページ

          このページでは、以下のページが読まれていることを前提として説明します。

          ウィジェット

          リンクフォーム

          API

          表示させる決済手段の限定

          課金作成時に以下記述をすることで、他の決済手段を含まず、コンビニ決済の手続きだけを消費者に行わせることができます。
          また、役割の異なるパラメータが、意図せず適用されることを防げます。

          実装方法フィールド値の例1(コンビニ決済のみ表示させたい場合)
          ウィジェット
          (HTML / JavaScript)
          data-payment-methods /
          paymentMethods
          konbini
          リンクフォームpaymentMethods[]konbini
          実装方法フィールド値の例2(コンビニ決済かつ特定のコンビニエンスストアに限定したい場合)
          ウィジェット
          (HTML / JavaScript)
          data-payment-methods /
          paymentMethods
          seven_eleven,family_mart,lawson,mini_stop,seico_mart,pay_easy,circle_k,sunkus,daily_yamazaki,yamazaki_daily_store
          リンクフォームpaymentMethods[]seven_eleven,family_mart,lawson,mini_stop,seico_mart,pay_easy,circle_k,sunkus,daily_yamazaki,yamazaki_daily_store

          この指定をしない場合は、利用可能なすべての決済手段が表示されます。
          全てではなく、いくつか特定の決済手段を表示させたい場合は、それぞれの決済手段を指定してください。

          独自のはたらきをするパラメータ

          コンビニ決済利用時に独自のはたらきをするパラメータを、抜粋して紹介します。

          入金期限の指定

          トランザクショントークン作成時および課金作成時に以下記述をすることで、任意の銀行振込の期限を指定できます。
          トランザクショントークン作成時と課金作成時の両方で入金期限を指定した場合は、課金作成時の入金期限が優先されます。

          方法1 日時を指定

          課金作成時に以下記述をしてください。

          実装方法フィールド値の例(2023/4/3 12:34:56までの場合)
          ウィジェット
          (HTML / JavaScript)
          data-capture /
          capture
          かつ
          data-capture-at /
          captureAt
          false
          かつ
          2023-04-03T12:34:56+09:00
          APIcapture_at2023-04-03T03:34:56Z
          ※国際規格(ISO 8601)で処理するため9時間の時差があります

          方法2 間隔を指定(銀行振込 / コンビニ決済に対応)

          トランザクショントークン作成時に以下記述をしてください。

          実装方法フィールド値の例(2023/4/3 12:34:56までの場合)
          APIdata.expiration_period
          かつ
          data.expiration_time_shift
          P3D
          かつ
          T12:34:56+09:00Z

          課金作成時に以下記述をしてください。

          実装方法フィールド値の指定例(3日後の12:34:56までの場合
          ウィジェット
          (HTML / JavaScript)
          data-expiration-period /
          expirationPeriod
          かつ
          data-expiration-time-shift /
          expirationTimeShift
          P3D
          かつ
          12:34:56+09:00
          リンクフォームexpirationPeriod
          かつ
          expirationTimeShift
          P3D
          かつ
          12:34:56+09:00
          (または12%3A34%3A56%2B09%3A00)<