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リクエストには以下が必要です。(括弧内は入力箇所)
          トランザクショントークンを作成した後はトランザクショントークンIDを指定して課金 / 定期課金を行ってください。

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

          【注意】決済手段がクレジットカードの場合

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

          クレジットカード以外の決済手段の場合は、当社へ連絡不要でトランザクショントークン – CREATE リクエストを行えます。

          リクエスト

          CommandとHeader

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

          利用できるパラメータ

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

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          payment_typestring card (クレジットカード決済), paidy (Paidy決済), online (オンラインモバイル決済)※, konbini (コンビニ決済), bank_transfer (銀行振込決済)のいずれか
          online はワンタイムトークンのみ指定可能
          typestring トークンの種類を参照
          特定の支払い手段により種類が制限される場合あり
          繰り返しに設定されていて、アカウントに無限に課金可能なトークンを作成する権限がない場合は、usage_limitパラメーターを指定する必要あり
          usage_limitstring このトークンがリカーリングトークンの場合に使用できる頻度
          無限に課金可能なリカーリングトークンを作成する権限がある場合は空白可
          emailstring メールアドレス
          ※payment_typeがonlineのみ任意・それ以外は必須
          ip_addressstring 消費者のデバイスのIPv4アドレス
          ※we_chat_online(web, http_get)の場合
          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": "2034",
              "cvv": "123",
              "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リクエストには以下が必要です。(括弧内は入力箇所)
          トランザクショントークンを作成した後はトランザクショントークンIDを指定して課金 / 定期課金を行ってください。

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

          【注意】決済手段がクレジットカードの場合

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

          クレジットカード以外の決済手段の場合は、当社へ連絡不要でトランザクショントークン – CREATE リクエストを行えます。

          リクエスト

          CommandとHeader

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

          利用できるパラメータ

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

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          payment_typestring card (クレジットカード決済), paidy (Paidy決済), online (オンラインモバイル決済)※, konbini (コンビニ決済), bank_transfer (銀行振込決済)のいずれか
          online はワンタイムトークンのみ指定可能
          typestring トークンの種類を参照
          特定の支払い手段により種類が制限される場合あり
          繰り返しに設定されていて、アカウントに無限に課金可能なトークンを作成する権限がない場合は、usage_limitパラメーターを指定する必要あり
          usage_limitstring このトークンがリカーリングトークンの場合に使用できる頻度
          無限に課金可能なリカーリングトークンを作成する権限がある場合は空白可
          emailstring メールアドレス
          ※payment_typeがonlineのみ任意・それ以外は必須
          ip_addressstring 消費者のデバイスのIPv4アドレス
          ※we_chat_online(web, http_get)の場合
          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": "2034",
              "cvv": "123",
              "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
          cardInstallmentOptions半角数allowCardInstallments=true の時、ドロップダウンメニューでの選択肢を制御

          選択可能な値(カンマ区切り):
          1356101215182024revolving
          全て
          表記ルールについては免責事項を参照してください

          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

          方法3 間隔を指定(コンビニ決済のみ対応)

          課金作成時に以下記述をしてください。

          実装方法フィールド値の指定例(3日後の12:34:56までの場合
          ウィジェット
          (HTML / JavaScript)
          data-convenience-store-expiration-period /
          convenienceStoreExpirationPeriod
          かつ
          data-convenience-store-expiration-time-shift /
          convenienceStoreExpirationTimeShift
          P3D
          かつ
          12:34:56+09:00
          リンクフォームconvenienceStoreExpirationPeriod
          かつ
          convenienceStoreExpirationTimeShift
          P3D
          かつ
          12:34:56+09:00
          (または12%3A34%3A56%2B09%3A00

          24.2.3 コンビニ決済 - APIへのリクエスト

          本ガイドは、コンビニ決済における各API処理の補足説明です。

          コンビニ決済に必要な消費者の情報には、カード番号のような保護が必要な情報は含まれていないため、決済を行うシステムがPCI DSSに準拠していない場合でもAPIへのリクエストでトークンを作成できます。

          以下では、本サービスのウィジェットやリンクフォームを使用せず、加盟店さま側で支払ページを作成しAPIで処理する場合のフローを説明します。

          1.トークン作成

          消費者の情報をトークン化して保存します。
          詳細は、APIリファレンス「トランザクショントークン – CREATE」を確認してください。

          リクエストBody例

          {
            "payment_type" : "konbini",
            "type" : "one_time",
            "email" : "demo@univapay.com",
            "data" : {
            "customer_name" : "テスト 太郎",
            "phone_number" : {
               "country_code" : "81",
               "local_number" : "0364413400"
             }, 
              "convenience_store" : "family_mart"
            },
            "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,
            "fee_amount": null,
            "fee_currency": null,
            "fee_amount_formatted": null,
            "only_direct_currency": false,
            "capture_at": null,
            "descriptor": null,
            "descriptor_phone_number": null,
            "status": "awaiting",
            "error": null,
            "metadata": {
              "internal_convenience_payment_number": "20020-123456789012",
              "internal_convenience_payment_url": "https:/example.com"
            },
            "mode": "live",
            "created_on": "2022-07-20T06:28:44.521327Z"
          }

          支払先の情報は、レスポンスの"metadata"の値として反映されます。
          支払先の情報が反映されるタイミングは、課金作成のリクエスト時ではなく、課金申込が成功して"status": "awaiting"になった時以降です。
          "metadata"の値とその内容は以下の通りです。

          "metadata"の値内容
          internal_convenience_payment_number支払い番号
          internal_convenience_payment_url支払い票のURL
          ※支払先がセブンイレブンの場合のみ発行されます

          Pay-easyの場合は支払いに別途「収納機関番号」が必要です。
          値は固定されていて、共通で58091です。
          課金取得時のレスポンスには反映されず、申込完了メールにのみ反映されます。

          4課金の取得

          入金の結果を取得します。
          詳細は、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.3 オンライン決済 - 概要

          決済処理を行う際に各QR事業者(プロバイダ事業者)の画面に遷移し、消費者側がログインして決済する または 各アプリを開いて決済する手段です。
          下記がオンライン決済に該当します。

          • PayPay Online
          • Alipay Online
          • Alipay Plus Online
          • WeChat Pay Online
          • d払い Online

          オンライン決済でサポートしている内容は、以下を参照してください。

          課金方式

          都度課金のみ利用できます。
          定期課金やリカーリングトークンを用いた継続的な課金には利用できません。

          実装方法

          当社決済フォーム(リンクフォーム,ウィジェット)の設置と、APIでの連携が可能です。

          処理

          以下の処理は対応していないため、有効にしても無視されます。

          処理無視される理由
          カード登録(リカーリングトークン作成)
          CVV認証(CVV auth)
          仮売上
          分割払い
          無効な項目のため
          定期課金未実装な項目のため

          24.3.1 オンライン決済 - 特徴

          消費者の支払いフロー

          ここでは、当社決済フォームを開いてから決済が完了するまでの流れを説明します。
          決済手段や消費者の使用するデバイスによっては、利用できない方法があります。

          PCブラウザで開く場合

          決済手段消費者の支払いフロー
          PayPay Onlineブラウザ内でログイン情報を入力し、SMSで発行されたワンタイムコードを入力して決済
          または
          表示されたQRコードをモバイル端末で読み取って決済
          Alipay Online表示されたQRコードをモバイル端末で読み取って決済
          または
          ブラウザ内でAlipayのアカウント情報を入力し、支払いパスワードを入力して決済
          Alipay Plus Online表示されたQRコードをモバイル端末で読み取って決済
          WeChat Pay Online非対応
          d払い Online ブラウザ内でログイン情報を入力し、SMSで発行されたワンタイムコードを入力して決済

          モバイル端末で開く場合

          決済手段消費者の支払いフロー
          PayPay Online端末内のアプリを開いて決済
          または
          ブラウザ内でログイン情報を入力し、SMSで発行されたワンタイムコードを入力して決済
          Alipay Online端末内のアプリを開いて決済
          または
          ブラウザ内でAlipayのアカウント情報を入力し、支払いパスワードを入力して決済
          Alipay Plus Online支払うウォレットを選択し、端末内の各アプリを開いて決済
          WeChat Pay Onlineリンクフォームを利用する場合:
          アプリ内で当社決済フォームを開き、そのままアプリ内で決済
          ※決済手段でAlipay,Alipay Plusを選択すると支払い処理に失敗します。
          ※アプリ外のブラウザからフォームを開いた場合は、決済手段として表示されず利用できません。

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

          ※PayPay Onlineは決済時に消費者の情報を取得しないため、決済情報から消費者を特定できません。
           そのため、決済フォームから消費者の情報を取得する(メールアドレスを必須項目にする等)または メタデータを付与するなど、消費者を特定できる実装を推奨します。

          消費者の支払い画面は、下記の画像付き資料を参照してください。

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

          テストモードの挙動

          テストモードでは本番モードと挙動が異なります。
          テストモードの挙動は下記のとおりです。

          リクエスト方法挙動
          ウィジェット
          リンクフォーム
          即時に課金ステータスが「成功」になる
          APIレスポンスで "issuer_token": "test" が返却される
          ※実際のイシュアトークン(URL)は発行されません。

          テストモードでリクエストすることで、メール通知とウェブフック(システム通知)を確認できます。

          24.3.2 オンライン決済 - 要注意なパラメータ

          事前に読むべきページ

          このページでは、以下のページが読まれていることを前提として説明します。

          ウィジェット

          リンクフォーム

          表示させる決済手段の限定

          課金作成時に以下記述をすることで、他の決済手段を含まず、オンライン決済の手続きだけを消費者に行わせることができます。
          また、役割の異なるパラメータが、意図せず適用されることを防げます。

          実装方法フィールド値の例(オンライン決済のみ表示させたい場合)
          ウィジェット
          (HTML / JavaScript)
          data-payment-methods /
          paymentMethods
          online
          リンクフォームpaymentMethods[]online
          実装方法フィールド値の例(オンライン決済かつ特定のQR事業者に限定したい場合)
          ウィジェット
          (HTML / JavaScript)
          data-payment-methods /
          paymentMethods
          pay_pay_online, we_chat_online, alipay_online, alipay_plus_online
          リンクフォームpaymentMethods[]pay_pay_online, we_chat_online, alipay_online, alipay_plus_online

          この指定をしない場合は、利用可能なすべての決済手段が表示されます。
          全てではなく、いくつか特定の決済手段を表示させたい場合は、それぞれの決済手段を指定してください。

          24.3.3 オンライン決済 - APIへのリクエスト

          本ガイドは、オンライン決済における各API処理の補足説明です。

          オンライン決済に必要な消費者の情報には、カード番号のような保護が必要な情報は含まれていないため、決済を行うシステムがPCI DSSに準拠していない場合でもAPIへのリクエストでトークンを作成できます。

          以下では、本サービスのウィジェットやリンクフォームを使用せず、加盟店さま側で支払ページを作成しAPIで処理する場合のフローを説明します。
          APIの処理によって各QR事業者の支払い画面を呼び出すための流れは下記です。

          1トークン作成

          消費者の情報をトークン化して保存します。
          詳細はこちらのドキュメントを確認してください。

          決済手段によって必要な情報が異なります。
          また、 http_get や http_post など、各QR事業者が要求する実行方法によっても指定する値が異なります。

          リクエストBody例

          {
            "payment_type" : "online",
            "type" : "one_time",
            "email" : "demo@univapay.com",
            "data" : {
              "brand" : "alipay_plus_online",
              "call_method" : "http_get"
            },
            "metadata": {
              "memberid" : "12345"
            },
          }

          2課金作成

          作成したトークンに対して課金申込を行います。
          詳細はこちらのドキュメントを確認してください。

          リクエストBody例

          {
          "transaction_token_id": "9c3b37f8-1851-11e7-9b58-8b8ddbe8f1d1",
          "amount": 1000,
          "currency": "JPY",
          "metadata": {
              "order_id": 12345,
              "shipping_details": "Customer wants it now"
            },
          "redirect": {
              "endpoint": "https://test.url/path?additionalParams=paramValue"
            }
          }

          3課金取得

          課金申込の結果を取得します。
          詳細はこちらのドキュメントを確認してください。

          "status": "awaiting" が確認できたら正常に課金申込が完了し、消費者からの入金待ちの状態です。

          ウェブフックで結果を受信することも可能です。
          (ウェブフックのイベント名はcharge_updatedです。)

          レスポンス / ウェブフック Body例

          {
            "id": "0fe1e42a-1845-11e7-9b1f-d3bd0c055a99",
            "store_id": "af857264-180c-11e7-9be2-276aea4fed28",
            "transaction_token_id": "9c3b37f8-1851-11e7-9b58-8b8ddbe8f1d1",
            "transaction_token_type": "one_time",
            "subscription_id": null,
            "requested_amount": 1000,
            "requested_currency": "JPY",
            "requested_amount_formatted": 1000,
            "charged_amount": 1000,
            "charged_currency": "JPY",
            "charged_amount_formatted": 1000,
            "status": "awaiting",
            "error": null,
            "metadata": {
              "customer_id": 12345,
              "shipping_details": "Customer wants it now"
            },
            "mode": "test",
            "created_on": "2018-07-13T02:55:00.07367Z"
          }

          状況は、課金の状態 "status" および入金額 "charged_amount_formatted" から確認できます。

          4イシュアトークン取得

          取得した課金IDを基に各QR事業者の支払い画面を呼び出します。
          レスポンスで発行された各QR事業者の支払いURLを消費者側に表示すると、支払いに進めます。
          詳細はこちらのドキュメントを確認してください。

          レスポンス Body例

          { "issuer_token": "test", "call_method": "http_get" }

          24.4 Paidy - 概要

          Paidy(後払い)とは、購入代金を自由な方法で翌月にまとめて支払うことができる決済手段です。
          決済フォームでメールアドレスと電話番号を入力し、SMS認証を行うことで決済を行います。

          Paidyでサポートしている内容は、以下を参照してください。

          課金方式

          都度課金および定期課金、リカーリング課金を利用できます。

          実装方法

          当社決済フォーム(リンクフォーム,ウィジェット)の設置のみ対応しています。
          APIでの連携には対応していません。

          処理

          以下の処理は無効な項目のため、有効にしても無視されます。

          • CVV認証(CVV auth)
          • 分割払い

          24.4.1 Paidy - 特徴

          消費者の支払いフロー

          当社決済フォームへ情報を入力後、Paidyの決済画面が開いたら案内に沿って進むと、再度当社画面に戻って決済が完了する流れです。
          ウィジェットの場合は「支払う」ボタンを押し、リンクフォームの場合は待機すると支払い完了画面が表示されます。

          消費者の支払い画面は、下記の画像付き資料を参照してください。

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

          結果の通知・確認

          結果を加盟店さまの配送(または、それに準ずる会員ステータス等の)システムに自動で反映する必要がある場合は、ウェブフックで結果を受信して注文システムを更新するプログラムを設置してください。また、結果はAPIへリクエストすることでも取得できます。

          システム連動を行わず、管理画面またはメールで結果を確認する場合は作成する必要はありません。

          テストモードの挙動

          Paidyはテストモードの決済に対応していません。
          本番モードの挙動は本ページ「消費者の支払いフロー」で確認してください。

          24.4.2 Paidy - 要注意なパラメータ

          本ページは、Paidyに対してパラメータを使用する場合に、注意すべき点の補足説明です。

          事前に読むべきページ

          このページでは、以下のページが読まれていることを前提として説明します。

          ウィジェット

          リンクフォーム

          表示させる決済手段の限定

          課金作成時に以下記述をすることで、他の決済手段を含まず、Paidyの手続きだけを消費者に行わせることができます。
          また、役割の異なるパラメータが、意図せず適用されることを防げます。

          実装方法フィールド値の例(Paidyのみ表示させたい場合)
          ウィジェット
          (HTML / JavaScript)
          data-payment-methods /
          paymentMethods
          paidy
          リンクフォームpaymentMethods[]paidy

          この指定をしない場合は、利用可能なすべての決済手段が表示されます。
          全てではなく、いくつか特定の決済手段を表示させたい場合は、それぞれの決済手段を指定してください。

          25. トランザクショントークン - 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
          }

          26. パラメータの対比

          リクエスト時のパラメータの比較表です。
          主にクレジットカード決済に関連するものを記載しています。
          詳細はパラメータについて説明している各ページ及び、利用開始までの流れを記載した初期設定のページを確認して下さい。

          項目旧システム新システム
          ウィジェット方式
          インライン方式の場合
          新システム
          API方式の場合
          店舗IDsiddata-app-id
          ※アプリトークンで店舗を判断し認証
          Authorization: Bearer {secret}.{jwt}
          ※アプリトークンとシークレットで店舗を判断し認証
          ジョブタイプjob
          仮売上:AUTH
          実売上:SALES
          有効性チェック:CHECK
          など
          オーソリ&キャプチャ:data-capture
          セキュリティコード認証:data-cvv-authorize
          など
          オーソリ&キャプチャ:capture
          セキュリティコード認証:cvv_authorize.enabled
          など
          サービス種別svid
          クレジット:1
          data-payment-methods
          クレジット:card
          payment_type
          クレジット:card
          処理種別ptype
          1=トークン決済(memberpay.aspxのみ)
          1=ゲートウェイ決済
          payment.aspxのみ PCI DSS準拠環境以外では禁止)
          2=3Dセキュア認証をするゲートウェイ決済
          3=リンク方式
          4=リンク方式(3DS)
          なしなし
          トークンタイプなしdata-token-type
          one_time(デフォルト)
          recurring
          subscription
          data-checkoutと組み合わせる
          type
          one_time
          recurring
          subscription
          チェックアウトタイプなしdata-checkout
          トランザクショントークンを作成するだけ:token
          トランザクショントークンと課金の両方を作成する:payment
          data-token-typeと組み合わせる
          なし
          ※リクエスト時
          ~/tokens」「~/charges」で指定
          店舗オーダー番号
          (顧客ID)
          soddata-univapay-reference-idunivapay-reference-id
          トークンIDupcmemberidなしtransaction_token_id
          商品金額siam1data-amountamount
          通貨なしdata-currencycurrency
          自動課金周期actp1
          2=毎週 3=隔週
          4=毎月 5=隔月
          6=3ヶ月 7=6ヶ月
          8=1年
          20=日数指定
          21=日付指定
          22=開始日指定(月周期)
          23=開始日指定(日周期)
          24=翌月日付指定
          data-subscription-period
          daily(毎日)
          weekly(毎週)
          biweekly(隔週)
          monthly(毎月)
          bimonthly(隔月)
          quarterly(3ヶ月)
          semiannually(6ヶ月)
          annually(毎年)
          P●D(〇日毎)
          P●M(〇ヶ月毎)
          period
          daily(毎日)
          weekly(毎週)
          biweekly(隔週)
          monthly(毎月)
          bimonthly(隔月)
          quarterly(3ヶ月)
          semiannually(6ヶ月)
          annually(毎年)

          cyclical_period
          P●D,P●M(〇日、〇ヶ月など)
          (ISO-8601 Duration)
          自動課金日付acdc1
          ※自動課金周期 に「20」「21」「22」「23」「24」指定時
          20=X日周期
          21=X日付
          22=X日後開始
          23=X日周期
          24=翌月日付指定
          data-subscription-start
          ※開始日指定:yyyy-mm-dd形式の日付指定
          schedule_settings.start_on
          ※開始日指定:yyyy-mm-dd形式の日付指定
          自動課金間隔acmc1
          ※自動課金周期 に「21」「22」「23」「24」指定時
          21=(指定値)✕ ヶ月毎 
          22=(指定値)✕ ヶ月毎
          23=X日後開始 
          24=(指定値)✕ ヶ月毎
          なしなし
          自動課金額acam1data-amount
          data-subscription-initial-amount

          ※初回課金金額
          data-subscription-qty
          ※金額指定の回数制限を利用する場合
          amount
          initial_amount
          ※初回課金金額
          subscriptiont_plan.fixed_cycle_amount
          ※金額指定の回数制限を利用する場合
          自動課金回数acrm1
          0」指定・省略時=無制限
          data-subscription-plan
          fixed_cycles=固定の回数の支払い
          fixed_cycle_amount=都度の課金額を固定
          subscription_plan.plan_type
          fixed_cycles=固定の回数の支払い
          fixed_cycle_amount=都度の課金額を固定
          自動課金リトライ回数acrt1
          未指定時は3回
          なし
          ※3回(初回含まないため実質2回。管理画面で変更可)
          なし
          ※3回(初回含まないため実質2回。管理画面で変更可)
          自動課金リトライ周期acrd1
          (指定値)✕ 日
          data-subscription-retry-intervalschedule_settings.retry_interval
          支払い回数scdata-allow-card-installments
          (プルダウンで消費者に支払い回数を表示させる)

          data-installment-qty
          (data-installment-plan= “fixed_cycles”の場合)
          installment_plan.fixed_cycles
          (installment_plan.plan_typefixed_cyclesの場合)
          店舗復帰URLコードsucd
          ※事前に当社コントロールパネルで登録必要
          data-auto-submit
          <form action=”<任意のURL>”>に指定
          なし
          決済番号pidcharge_idなし
          リクエスト時
          ~/charges/{id}/~」で指定
          自動課金番号acidsubscription_idなし
          リクエスト時
          ~subscriptions/{subscriptionId}
          で指定
          メールアドレスemdata-emailemail
          商品コードsicd1data-product-codesなし

          決済結果通知のパラメータ対比表

          項目旧システム
          (キックバック)
          新システム
          (ウェブフック)
          決済番号pidid
          処理結果rststatus
          管理番号(モードの判断)ap
          ※本番モード時は「決済番号」
          ※テストモード時は「TestMode」
          mode
          ※テストモード時は「test
          エラーコードec
          ※成功時:ER000000000
          “error”: {“message””details”}
          店舗オーダー番号sodunivapay-reference-id
          決済金額合計tacharged_amount
          ジョブタイプjobtransaction_token_type
          自動課金周期actpperiod
          自動課金日付acdcstartOn

          27. 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件/日

          28. 定期課金について

          作成方法は以下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時

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

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

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

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

          定期課金

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

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

          分割払い

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

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

          29. リカーリングトークンについて

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

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

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

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

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

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

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

          ※加盟店設定によります

          30. パラメータ(分割払い)

          ウィジェットで、消費者に分割払いを選択させたい場合に、指定するパラメータです。
          基本動作に加え、以下を指定してください。

          フィールド名について

          • 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

          インラインフォームで利用可
          全て
          表記ルールについては免責事項を参照してください

          31. 各種機能詳細

          本サービスを実装する上で、必要に応じて理解する必要がある各機能の仕様について記載しています。

          31.1 定期課金

          定期課金では、事前に指定したサイクルで自動的に課金を行います。
          2回目以降の課金は、課金日の午前7時※より順次課金を開始します。
          ※毎日の定期課金 および 定期課金開始日が定期課金作成日の1日後な場合に限り午前9時

          定期課金を作成する方法については実装ガイドの各ページを参照してください。

          ステータス

          ステータス状態
          待機中定期課金を作成し、初回課金の待機中
          継続中現在稼働中の定期課金
          一時停止一時停止され再開可能な状態
          または 定期課金失敗回数を超えた状態
          リトライ待ち継続中の定期課金で課金を失敗し、再課金を待っている状態
          または 一時停止後に再開し、再課金を待っている状態
          永久停止定期課金が完全に停止され再開不可な状態
          作成失敗定期課金作成のため初回課金を行うも決済失敗した状態
          (定期課金として稼働していない状態)
          完了指定した課金回数分の決済が終わった状態
          または 分割払いが成功した状態

          定期課金で行うことができる処理

          処理説明
          一時停止・永久停止・停止予約停止処理をするとその時点から継続的な課金を行わないようになる
          設定によっては停止リクエストがあった時、次回課金実行日まで停止しないようにすることも可能
          再開一時停止になっている定期課金を再開する
          再開後はリトライ日、もしくは次回課金日に実行される
          リトライ定期課金のサイクルでの課金が失敗した際に一定間隔で再度課金を実行する
          間隔・回数はリクエストのパラメータまたは管理画面より設定が可能
          支払い情報の更新クレジットカード等、消費者の支払い情報を変更する
          詳細はこちら
          定期課金情報の更新管理画面から次回課金日、次回課金金額、メタデータ、メールアドレスなどの編集が可能
          仮売上定期課金の初回課金を仮売上にする
          キャプチャされた後に定期課金が開始しサイクル毎に課金が行われる
          回数制限付き定期課金回数を制限した定期課金を行い、回数分の課金が完了後終了する※
          初回無料の定期課金初回処理でセキュリティコード認証を行うことで、初回の金額が0円の定期課金を作成することが可能
          分割払い各決済フォームで分割回数を指定して決済すると、定期課金として作成される
          APIで作成する場合は定期課金オブジェクトでフィールドを指定する必要あり
          ※割賦販売法に基づき、この機能を1商品を複数回に分けて決済するように利用することは禁止されています。
          このような利用が発覚した際、カード会社からの調査依頼の発生や、加盟店契約の解約に至る可能性があります。

          31.1.1 リトライ

          定期課金の支払い失敗後、再度課金を行うことができます。
          課金に失敗した日から指定した間隔日後に課金の再実行され、その後成功するまで設定された回数リトライを行います。

          リトライの指定方法

          リトライ間隔

          リトライを行う間隔は定期課金毎に任意で指定できます。

          指定方法処理
          パラメータなどで間隔を指定する指定した間隔でリトライ
          ※各実装方法でのページを参照してください
          指定せずデフォルトで間隔が設定される定期課金の周期÷リトライ回数で計算された間隔でリトライ ※1 ※2
          ※1 毎月(monthly)は課金月に関係なく30日として計算されます。
          ※2 割り切れない場合は切り捨ての日数となります。(30日÷4=7.5日 →7日となります)

          リトライ回数

          リトライを行う回数は 管理画面>一般設定>決済サービス>全体設定 から設定できます。

          リトライ時の挙動

          一時停止中の定期課金を再開すると、リトライ回数(課金失敗回数)のカウントはリセットされ、設定した回数リトライが行われます。
          リトライが成功した場合は期間(サイクル)を参照して次回課金日が設定されます。

          初回を含め、設定回数以上のリトライが実行された場合、失敗後一時停止します。

          例:
          課金間隔:毎月
          リトライ回数:3回
          →リトライ間隔・・・10日(30日÷3)

          状態挙動
          リトライするも失敗した6/1:失敗
          6/11:リトライ失敗
          6/21:リトライ失敗→停止
          リトライし成功した6/1:失敗
          6/11:リトライ失敗
          6/21:リトライ成功
          7/1:次回課金

          リトライ日

          リトライ日は、「課金失敗日からリトライ間隔後の日付」と「指定した次回課金日」を参照して決定されます。

          • 「指定した次回課金日」の方が未来:指定した次回課金日にリトライを実行
          • 「課金失敗日からリトライ間隔後の日付」の方が未来:リトライ間隔後にリトライを実行

          課金が失敗してリトライ待ちになった定期課金の次回課金日を変更しても、「課金失敗日からリトライ間隔後の日付」の方が未来の場合は次回課金日にリトライされないためご注意ください。
          また、加盟店さまで作成済定期課金のリトライ間隔の変更は行えないため、リトライ間隔後より前に課金を実行させたい場合はサポートデスクへご連絡ください。

          継続中の定期課金を任意で一時停止して再開した場合は、リトライ待ちであってもリトライ日が表示されず、次回課金日に課金を実行します。

          31.1.2 停止・再開

          停止

          定期課金に停止処理をすると、その時点から継続的な課金を行わないようになります。
          停止する方法は下記です。

          方法設定(指定)
          管理画面「一時停止」「永久停止」ボタンを押下
          停止予約を設定
          ※ページ下部に詳細を記載
          API定期課金:UPDATEstatus:suspendedに更新
          定期課金:CREATEschedule_settings.termination_mode:on_next_payment を指定
          設定した回数リトライが失敗無し(自動で一時停止)
          ※前ページで記載

          停止予約について

          定期課金作成時、もしくは作成後管理画面(またはAPI)で操作することで、
          停止リクエストがあった時に次回課金実行日に定期課金を停止させるかどうかを設定することができます。
          ※ここでの「停止リクエスト」は一時停止、永久停止の両方を指します

          管理画面から変更する場合

          「定期課金を停止する場合

          定期課金の停止リクエストを受けた場合に停止するタイミングを設定できます。

          選択肢処理
          すぐに定期課金を停止即時停止
          次回課金日に定期課金を停止リトライ含む次回の課金実行日に、課金せず停止

          「次回課金実行日の処理(リトライ日含む)」

          リトライ含む次回の課金実行日の処理を設定できます。
          前の項目で「次回課金日に定期課金を停止」を指定した場合に選択できるようになります。

          選択肢処理
          そのまま課金停止リクエストがない場合は課金を継続
          停止リクエストを受けた場合は、次回課金日に停止
          定期課金を一時停止次回課金実行日に一時停止
          定期課金を永久停止次回課金実行日に永久停止
          ※デフォルトは「定期課金を一時停止」です
          ※リトライ失敗が指定した回数に達した場合は、上記の設定にかかわらず失敗したタイミングに停止します

          再開

          一時停止している定期課金に限り、再開処理をすることができます。
          再開方法については下記の表を確認してください。

          方法処理
          管理画面管理画面>定期課金詳細 から「再開」ボタンを押す
          API定期課金:UPDATEstatus:currentに更新

          再開後の挙動

          再開する時、設定されていた次回課金日の状態によって挙動が異なります。

          次回課金日の状態処理
          再開日に対して次回課金日が未来
          既に設定されている次回課金日に課金する
          再開日に対して次回課金日が過去再開直後には課金されず、再開時から最も近い将来のサイクル日に次回課金日がセットされる
          再開日が次回課金日と同日再開直後に即時課金される
          ※当日に既に課金が実行されていれば課金されない

          次回課金日が過去の場合の例:
          毎月1日の毎月サイクルの定期課金
          8/1:課金
          8/15:一時停止(次回課金日は9/1の状態)
          10/2:再開(直後には課金されない)
          →次回課金日が自動で11/1にセットされる

          再開時に次回課金日を指定する

          前回課金の処理結果によって処理が分かれます。

          • 前回課金が成功:指定した次回課金日で課金実行
          • 前回課金が失敗:前ページの仕様に従い、課金実行日を決定

          回数指定の定期課金を再開する

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

          例:
          毎月1日の毎月サイクル、5回の回数指定で、
          8/15に停止し、10/2に再開した際の課金スケジュールは下記です。
          未払いの9/1・10/1の分は後ろ倒し、1/1・2/1と支払い予定が追加されます(本来は12/1が最後の支払予定日)

          停止しない停止して再開
          8/18/1
          9/1-(停止中)
          10/1-(停止中)
          11/111/1
          12/1(完了)12/1
          1/1
          2/1(完了)

          31.2 消費者によるお支払い方法の更新

          消費者が自ら支払い方法を更新する方法はいくつか存在します。
          新たに情報を登録して加盟店さまで既存の支払い情報と紐づけていただくか、既存の支払い情報を引き継いで更新する2つの場合に分かれます。

          定期課金

          消費者が利用するフォーム加盟店さまの提供方法
          リンクフォームsubscriptionidを利用したフォームを準備する
          ※詳細はこちら
          ウィジェット・インラインフォームdata-subscription-idを利用したフォームを準備する
          ※詳細はこちら
          定期課金変更URL管理画面>定期課金>詳細 から、
          カード情報変更フォームのURLを消費者に共有する
          支払い情報の確認・変更画面別ページで設定、共有方法を記載

          リカーリングトークン

          消費者が利用するフォーム加盟店さまの提供方法
          リンクフォームカード登録のみのフォームを準備する
          ※メタデータやトークンIDなどで消費者を判別することが必須
          ウィジェット・インラインフォームカード登録のみのフォームを準備する
          ※メタデータやトークンIDなどで消費者を判別することが必須
          支払い情報の確認・変更画面別ページで設定、共有方法を記載

          以下のページでは「支払い情報の確認・変更画面」についての利用方法を説明します。

          31.2.1 支払い情報の確認・変更画面

          支払い情報の確認・変更画面では、消費者が定期課金のカード情報変更や停止、リカーリングトークンの追加や変更が可能です。
          決済時やカード登録時に入力したメールアドレスをキーにして、定期課金やリカーリングトークンが表示されます。

          確認・変更できる内容

          定期課金情報

          • 課金停止処理
            定期課金を停止できます。回数制限付きの定期課金は停止できません。
          • カード管理  
            定期課金のカード情報を変更できます。設定で許可された方法から選択できます。
            • 現在のカードで名義・有効期限の変更
            • 新規カードを登録
            • その他のカードを使う(作成済のリカーリングトークンから選択)
              ※この方法の場合はメタデータなど変更前のトークン情報が引き継がれません。

          お支払い方法

          • 新規カードの登録
            リカーリングトークンを作成できます。メタデータ等の情報は付与されません。
          • 名義・期限の変更
            作成済リカーリングトークンのカード名義/有効期限を変更できます。
            変更処理を行うと、名義/有効期限が変更されたリカーリングトークンが新しく作成されます。
            • 更新後のリカーリングトークン
              更新前のリカーリングトークンの情報を引き継ぎます。(カード番号、メタデータ、メールアドレス等)
            • 更新前のリカーリングトークン
              ステータス:停止になり、管理画面から閲覧できます。過去に行われた課金の情報も引き続き閲覧できます。

          関連ページ

          詳細は下記のページで説明しています。

          31.2.2 1.消費者の利用フロー

          1.メール通知など、加盟店さまから案内された支払い情報の確認・変更画面URLをクリックする
           ※消費者へのURLの共有方法は、「消費者へのURLの共有方法」のページを参照してください。

          2.メールアドレスを入力する(URLにメールアドレスを未指定の場合のみ)

          3.指定のメールアドレス宛に届いた認証コードを入力し、ログインする
            (認証コードの有効期限:5分)

          4.各変更/停止処理を行う

          5.処理ごとに通知メールが届く(通知設定がONの場合のみ)

          ※消費者の各処理が完了すると、処理ごとに加盟店さまに通知メールやウェブフックが送信されます。(通知メール設定およびウェブフックのトリガーがONの場合のみ)

          31.2.3 2.加盟店さまの設定

          変更・停止の許可設定

          支払い情報の確認・変更画面から実行可能な処理は、管理画面の 一般設定>一般>全体設定>支払い情報の確認・変更画面から設定できます。

          消費者側の制限

          設定項目説明消費者の操作
          消費者側で定期課金の表示定期課金情報タブを表示
          消費者側でお支払い方法の表示お支払方法タブを表示
          消費者側で定期課金の停止定期課金の停止を許可定期課金情報>課金停止処理
          消費者側でカードの名義・有効期限の変更 リカーリングトークンのカード名義/有効期限更新を許可
          ※定期課金情報タブからカード名義/有効期限を変更するには、定期課金のトークンがリカーリングである必要があります
          定期課金情報 or お支払方法>カード管理>名義・期限の変更
          消費者側で新規カード登録リカーリングトークンの新規作成を許可
          ※定期課金情報タブでは、リカーリングトークンを作成しながら選択した定期課金のカード情報を更新します
          定期課金情報 or お支払方法>カード管理>新規カード登録
          消費者側でカードの削除リカーリングトークンの削除を許可
          ※定期課金を利用中の場合は、削除できません
          お支払方法>カード管理>カード削除
          消費者側で他のカードの選択 登録済のリカーリングトークンの選択を許可定期課金情報>カード管理>その他のカードを使う

          支払い情報の確認・変更画面のモード

          支払い情報の確認・変更画面のモードを本番/テストから選択できます。
          すべての支払い情報の確認・変更画面に対して指定したモードが反映されます。

          31.2.4 3.消費者へのURLの共有方法

          管理画面「通知メールテンプレート」

          メールテンプレート内に${customer_refer_link}のパラメータがある場合、支払い情報の確認・変更画面のURLが表示されます。

          デフォルトのメールテンプレートを利用する

          一般設定>一般>通知の「定期課金イベント発生時に通知」をONにしてください。
          上記設定によって、定期課金関連の通知メールにURLが表示されます。

          ※メールテンプレートのデフォルト内容はこちらを参照してください

          独自のメールテンプレートを作成する

          「定期課金イベント発生時に通知」の設定次第で、通知メールテンプレートの利用方法が異なります。
          ※都度課金と定期課金を併用している場合、「定期課金イベント発生時に通知」をONし、メールの文面を分けることを推奨します

          定期課金イベント発生時に通知利用方法
          ONテンプレート「決済完了通知」「決済失敗」に${customer_refer_link}を追加して作成してください。
          ※都度課金の場合は、リカーリングトークンがある場合のみURLにログインできます
          OFFページ下記説明を参照した上で作成してください。

          前提として、定期課金関連のメールには二種類のテンプレートが存在します。
          サブテンプレートの文面は、メインテンプレートの${subscription_payment_details:- }として反映されます。

          種類テンプレート名
          メインテンプレート・定期課金作成
          ・定期課金決済
          ・定期課金決済失敗
          ・定期課金の一時停止
          サブテンプレート・定期課金詳細
          ・回数制限つき定期課金の詳細

          用途に合わせてテンプレートにパラメータを追加してください。

          作成するテンプレート利用方法
          メイン・サブ両方を独自に作成するサブテンプレート内に${customer_refer_link}を、
          メインテンプレートに${subscription_payment_details:- }を追加してください。
          メインのみを独自に作成する${subscription_payment_details:- }を追加してください。
          ${subscription_payment_details:- }を追加しない場合は、${customer_refer_link}を追加してください。

          ${customer_refer_link}を追加可能なメールテンプレート

          •  定期課金作成
          •  定期課金決済
          •  定期課金決済失敗
          •  定期課金の一時停止
          •  定期課金のカード情報変更の案内 ※開発中のため現在は利用不可
          •  定期課金の詳細
          •  回数制限付き定期課金の詳細
          •  決済完了通知
          •  決済失敗

          手動でURLを作成・送信

          下記URLに店舗IDを入力して消費者に共有することで、支払い情報の確認・変更画面へアクセスできます。
          加盟店さま側でメールアドレスを指定したい場合は、メールアドレスも入力してください。

          方法URL
          メールアドレスを指定しないhttps://customer.univapay.com/stores/{店舗ID}
          メールアドレスを指定するhttps://customer.univapay.com/stores/{店舗ID}?emailAddress={メールアドレス}
          メールアドレスおよび表示させる定期課金IDを指定するhttps://customer.univapay.com/stores/{店舗ID}?emailAddress={メールアドレス}&subscriptionId={定期課金ID}

          管理画面「定期課金」(開発中)

          対象の定期課金を選択し「定期課金の管理画面」のメール送信ボタンを押すと、消費者のメールアドレス宛に「定期課金のカード情報変更の案内」の通知メールが送信されます。

          31.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)の決済情報の生成に失敗した

          31.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

          31.5 商品

          商品機能は加盟店さまが販売している商品の、名称や金額・課金方式について登録することができます。
          登録した商品は各決済フォームで選択・指定することでテンプレートのように使用することができます。

          ※ご利用にはオプション契約が必要になります。

          利用方法

          まず管理画面で商品を作成します。
          作成方法、各項目についてはこちらを確認して下さい。

          次に各決済フォームで登録した商品の情報を指定します。

          決済方式利用方法
          リンクフォーム・管理画面>リンクフォーム の作成画面で「商品」を有効 かつ 任意の商品を追加して保存
          ・作成時に指定した商品コードをパラメータに追加
          詳細はこちら
          ウィジェット・インラインフォーム作成時に指定した商品コードをパラメータに追加
          詳細はこちら
          API非対応

          複数商品の利用について

          この機能では、一度の決済で複数の商品を処理できます。
          ただ、同時に決済できる商品の種類には利用する決済フォームごとに制限があります。

          決済方式可能な利用方法
          リンクフォーム都度課金商品同士の複数追加
          都度課金商品と定期課金商品(1つまで)の複数追加
          定期課金商品同士の複数追加 ※開発中
          ウィジェット・インラインフォーム都度課金商品同士の複数追加

          パラメータで利用する場合の注意点

          • 複数の商品を同時に指定する場合は「,」(カンマ)で区切って下さい。
          • 商品のパラメータを指定する場合は、app-id,checkoutを指定する必要があります。
          • 商品に含まれる情報をパラメータで別途指定すると商品の情報より優先されます。
            ex) amount や定期課金の場合 period
          • 商品に含まれない情報であればその他パラメータで併用可能です。
            ex) 初回0円の定期課金を作成する際はcvv-authorizeの指定が必要です。
          • 仮売上を行いたい場合はcaptureを併用して指定してください。

          31.6 処理結果のメール通知

          テンプレートでは、決済メールテンプレートの作成・編集ができます。

          テンプレートを作成しない場合は、決済システム側のデフォルトの決済完了メールが送信されます。
          別ページに例を記載していますが、その他メールの内容についてはテストモードで決済をすることで確認できます。

          31.6.1 テンプレートの種類

          決済完了

          決済が成功した時に送信されます。仮売上のキャプチャ、返金を行ったときもこのメールが送信されます。
          ${transaction_type}の部分が処理によって「課金」もしくは「返金」と表示されます。

          件名
          ${store} ${transaction_type}のお知らせ
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記の通り、${transaction_type}が行われましたのでご確認ください。

          [支払方法 ] ${payment_type}(${payment_brand})
          [課金ID  ] ${charge_id}
          [課金日時 ] ${date}
          [${transaction_type}金額 ] ${amount}
          [請求名  ] ${descriptor}

          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          決済失敗

          決済が失敗したときに送信されます。コンビニ決済の入金期限が切れたときもこのメールを送信されます

          件名
          ${store} 課金失敗のお知らせ
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記の課金が失敗いたしましたのでご確認ください。
          ——————————————————————————————-
          [支払方法 ] ${payment_type}(${payment_brand})
          [課金ID  ] ${charge_id}
          [課金日時 ] ${date}
          [課金金額 ] ${amount}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          リカーリング作成

          クレジットカード決済のリカーリングトークンの作成(支払い情報の登録)が成功した時に送信されます
          通常課金や定期課金で「カード登録(リカーリングトークン作成)」をONにした時にも送信されます

          件名
          ${store} お支払い情報登録のお知らせ
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          ご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記の通り、${payment_type}情報が登録されましたのでご確認ください。
          ——————————————————————————————-
          [支払方法 ] ${payment_type}(${payment_brand})
          [名義   ] ${card_holder_name}
          [更新日  ] ${date}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:- }
          [メールアドレス] ${contact_email:- }

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          リカーリングトークンのCVV認証失敗

          カード登録(定期課金の初回カード登録も含む)のみ行う処理で、CVV認証(セキュリティコード認証)が失敗した時に送信されます

          件名
          ${store} お支払い情報登録失敗のお知らせ
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          ご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記の通り、${payment_type}情報登録が失敗しましたのでご確認ください。
          ——————————————————————————————-
          [支払方法] ${payment_type}(${payment_brand})
          [日時  ] ${date}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:- }
          [メールアドレス] ${contact_email:- }

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          オーソリの実行

          仮売上に成功した時に送信されます

          件名
          ${store} 仮売上のお知らせ
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          ご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記の通り、仮売上に成功しましたのでご確認ください。
          ——————————————————————————————-
          [支払方法   ] ${payment_type}(${payment_brand})
          [名義     ] ${card_holder_name}
          [メールアドレス] ${email_address}
          [課金ID    ] ${charge_id}
          [課金金額   ] ${amount}
          [日時     ] ${date}
          [請求名    ] ${descriptor}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:- }
          [メールアドレス] ${contact_email:- }

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          オーソリの実行

          仮売上に失敗した時に送信されます

          件名
          ${store} 仮売上失敗のお知らせ
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          ご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記の通り、仮売上に失敗しましたのでご確認ください。
          ——————————————————————————————-
          [支払方法   ] ${payment_type}(${payment_brand})
          [名義     ] ${card_holder_name}
          [メールアドレス] ${email_address}
          [課金ID    ] ${charge_id}
          [課金金額   ] ${amount}
          [日時     ] ${date}
          [請求名    ] ${descriptor}
          [エラーコード ]${error_code}
          [エラー内容  ]${error_message}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:- }
          [メールアドレス] ${contact_email:- }

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          オーソリ済課金のキャンセル

          仮売上をキャンセルした時に送信されます

          件名
          ${store} 課金キャンセルのお知らせ
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          ご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記の通り、課金がキャンセルされましたのでご確認ください。
          ——————————————————————————————-
          [支払方法   ] ${payment_type}(${payment_brand})
          [課金ID    ] ${charge_id}
          [キャンセルID ] ${cancel_id}
          [キャンセル金額] ${amount}
          [日時     ] ${date}
          [請求名    ] ${descriptor}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:- }
          [メールアドレス] ${contact_email:- }

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          定期課金作成

          初回の定期課金作成が成功した時に送信されます

          件名
          ${store} 定期課金作成のお知らせ
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記の通り、定期課金が登録されましたのでご確認ください。
          ——————————————————————————————-
          [支払方法  ] ${payment_type}(${payment_brand})
          [課金ID   ] ${charge_id}
          [課金日時  ] ${date}
          [請求名   ] ${descriptor}
          [定期課金ID ] ${subscription_id}
          [課金金額  ] ${amount}
          [次回課金金額] ${subscription_next_payment_amount:- }
          [次回課金日 ] ${subscription_next_date:-次回課金なし}
          [課金サイクル]${subscription_period}
          ${subscription_payment_details:- }
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:- }
          [メールアドレス] ${contact_email:- }

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          定期課金決済

          定期課金の2回目以降の決済が成功した時に送信されます
          ${transaction_type}の部分が処理によって「課金」もしくは「返金」と表示されます

          件名
          ${store} 定期課金の${transaction_type}成功のお知らせ
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記の通り、${payment_type}の${transaction_type}が行われましたのでご確認ください。
          ——————————————————————————————-
          [支払方法  ] ${payment_type}(${payment_brand})
          [課金ID   ] ${charge_id}
          [課金日時  ] ${date}
          [請求名   ] ${descriptor}
          [定期課金ID ] ${subscription_id}
          [課金金額  ] ${amount}
          [次回課金金額] ${subscription_next_payment_amount:- }
          [次回課金日 ] ${subscription_next_date:-次回課金なし}
          [課金サイクル]${subscription_period}
          ${subscription_payment_details:- }
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:- }
          [メールアドレス] ${contact_email:- }

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          定期課金決済失敗

          初回課金金額がある定期課金の作成 および 定期課金の2回目以降の決済が失敗した時に送信されます

          件名
          ${store} 定期課金の${transaction_type}失敗のお知らせ
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記の通り、${payment_type}の${transaction_type}が失敗いたしましたのでご確認ください。
          ——————————————————————————————-
          [支払方法 ] ${payment_type}(${payment_brand})
          [課金ID  ] ${charge_id}
          [課金日時 ] ${date}
          [定期課金ID ] ${subscription_id}
          [課金金額  ] ${amount}
          [次回課金金額] ${subscription_next_payment_amount:- }
          [次回課金日 ] ${subscription_next_date:-次回課金なし}
          [課金サイクル]${subscription_period}
          ${subscription_payment_details:- }
          ※初回の決済に失敗した場合は、もう一度店舗のフォームから決済処理を行ってください。

          [エラーコード]${error_code:- }
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:- }
          [メールアドレス] ${contact_email:- }

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          定期課金一時停止

          定期課金の一時停止をした時に送信されます

          件名
          ${store} 定期課金停止のお知らせ
          本文

          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。
          決済情報をご確認のうえ、大切に保管してください。
          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。
          下記の通り、定期課金の一時停止処理が行われましたのでご確認ください。
          -------------------------------------------------------------------------------------------
          [支払方法  ] ${payment_type}(${payment_brand})
          [停止処理日 ] ${date}
          [請求名   ] ${descriptor}
          [定期課金ID ] ${subscription_id}
          ${subscription_payment_details:- }
          -------------------------------------------------------------------------------------------
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:- }
          [メールアドレス] ${contact_email:- }

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          定期課金永久停止

          定期課金の永久停止をした時に送信されます

          件名
          ${store} 定期課金停止のお知らせ
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。
          決済情報をご確認のうえ、大切に保管してください。
          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。
          下記の通り、定期課金の永久停止処理が行われましたのでご確認ください。
          -------------------------------------------------------------------------------------------
          [支払方法  ] ${payment_type}(${payment_brand})
          [停止処理日 ] ${date}
          [請求名   ] ${descriptor}
          [定期課金ID ] ${subscription_id}
          -------------------------------------------------------------------------------------------
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:- }
          [メールアドレス] ${contact_email:- }

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          定期課金のカード情報変更の案内

          ※開発中のため現在利用不可
          管理画面の定期課金詳細にあるボタン(開発中)から、支払い情報の確認・変更画面を案内したときに消費者に送信されます

          件名
          ${store} 定期課金のカード情報変更のご案内
          本文
          =========================================================
          このメールは定期課金にお支払い情報が登録されているメールアドレス宛に送信しております。

          ご確認のうえ、大切に保管してください。

          =========================================================

          いつも${store}をご利用いただき誠にありがとうございます。

          定期課金のお支払い情報更新手続きは下記URLから行ってください。
          ——————————————————————————————-
          ${customer_refer_link}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:- }
          [メールアドレス] ${contact_email:- }

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          定期課金のカード情報変更完了

          定期課金に登録されているカード情報が変更された時に送信されます

          件名
          ${store} 定期課金の${payment_type}情報更新のお知らせ
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          ご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記の通り、定期課金の${payment_type}情報が更新されましたのでご確認ください。
          ——————————————————————————————-
          [支払方法 ] ${payment_type}(${payment_brand})
          [名義   ] ${card_holder_name}
          [更新日  ] ${date}
          [定期課金ID] ${subscription_id}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:- }
          [メールアドレス] ${contact_email:- }

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          定期課金の詳細

          回数無制限の定期課金の情報が含まれています
          このテンプレートは定期課金関連のテンプレートに${subscription_payment_details}を入力すると反映させられます

          [定期課金種類]${subscription_type}
          [課金回数]${subscription_cycles_count}回目
          ——————————————————————————————-
          定期課金のお支払い情報更新手続きは下記URLから行えます。
          ${customer_refer_link:- }
          ※ご利用店舗様によってはURLから更新できない場合がございます。
           詳しくはご利用店舗様へお問合せくださいませ。

          回数制限付き定期課金の詳細

          回数制限付き定期課金の情報が含まれています
          このテンプレートは定期課金関連のテンプレートに${subscription_payment_details}を入力すると反映させられます

          [定期課金種類]${subscription_type}
          [課金回数]${subscription_cycles_count}回目
          ——————————————————————————————-
          定期課金のお支払い情報更新手続きは下記URLから行えます。
          ${customer_refer_link:- }
          ※ご利用店舗様によってはURLから更新できない場合がございます。
           詳しくはご利用店舗様へお問合せくださいませ。

          分割払いの詳細

          分割払いの情報が含まれています
          このテンプレートは定期課金関連のテンプレートに${subscription_payment_details}を入力すると反映させられます

          [定期課金種類]${subscription_type}
          [分割回数]${subscription_total_cycles_count}回

          決済フォーム支払い発行

          オプションでリンクフォームのメール送信機能を利用するときに送信されます

          件名
          決済リンクよりお支払いをお願いします${store}

          本文
          =========================================================
          ご注文ありがとうございます。
          ${store}でございます。

          内容をご確認の上、以下のURLから決済画面へお進みください。
          ——————————————————————————————-
          [URL期限 ] ${date}
          [金額 ] ${amount}
          [決済リンク]${link}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はお問い合わせ先情報へお願いいたします。

          決済フォームカード登録発行

          リンクフォームのメール送信機能を利用するとき、課金を行わなずカード登録のみ行うリンクフォームの場合はこのメールが送信されます

          件名
          決済リンクよりお支払いをお願いします${store}

          本文
          =========================================================
          ご連絡ありがとうございます。
          ${store}でございます。

          内容をご確認の上、以下のURLからカード登録画面へお進みください。
          ——————————————————————————————-
          [URL期限 ] ${date}
          [決済リンク]${link}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はお問い合わせ先情報へお願いいたします。

          振込期限切れ(督促なし)
          銀行振込の振込期限が切れたときに送信されます

          件名
          ${store} お振込期限切れについて
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記お申込みに関しまして、お振込期限を過ぎましたので 無効となりました事をお知らせいたします。
          ——————————————————————————————-
          [支払方法 ] 銀行振込
          [課金ID  ] ${charge_id}
          [金額   ] ${amount}
          [入金額  ] ${deposit_amount}
          ※入金がある場合は、下記までお問い合わせください。
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          振込期限切れ(督促有り)

          銀行振込の振込期限が切れた時、再度振込期限を指定して案内する設定の場合に送信されます

          件名
          ${store} お振込のご確認
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記お申込みに関しまして、お振込期限が過ぎておりますが、
          本日時点でご入金が確認できておりません。

          お手数ではございますが、内容をご確認の上お振込をお願いいたします。

          なお、本通知と行き違いでお振込みいただいている場合は、
          何卒ご容赦くださいますようお願い申し上げます。
          ——————————————————————————————-
          [支払方法 ] 銀行振込
          [課金ID  ] ${charge_id}

          [入金額  ] ${deposit_amount}
          [差額   ] ${deposit_needed}

          [銀行名  ] ${bank_name}
          [支店番号 ] ${bank_branch_code}
          [支店名  ] ${bank_branch_name}
          [口座種別 ] 普通
          [口座番号 ] ${bank_account_number}
          [口座名義 ] ${bank_account_holder_name}

          [最終期日 ] ${date}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:-メール対応のみ}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          銀行振込 申込完了

          銀行振込の申込が行われたときに送信されます

          件名
          ${store}  銀行振込 銀行振込のお申込を受け付けました
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          内容をご確認の上、期日までにお振込をお願いいたします。
          ——————————————————————————————-
          [支払方法 ] 銀行振込
          [課金ID  ] ${charge_id}
          [金額   ] ${amount}

          [銀行名  ] ${bank_name}
          [支店番号 ] ${bank_branch_code}
          [支店名  ] ${bank_branch_name}
          [口座種別 ] 普通
          [口座番号 ] ${bank_account_number}
          [口座名義 ] ${bank_account_holder_name}

          [振込期日 ] ${date}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          銀行振込 キャンセル

          銀行振込の申込を加盟店さまが取り消した時に送信されます

          件名
          ${store} 銀行振込 お申込がキャンセルされました
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記お申込みがキャンセルとなりましたのでご確認ください。
          ——————————————————————————————-
          [支払方法 ] 銀行振込
          [課金ID  ] ${charge_id}
          [金額   ] ${amount}

          [キャンセル日] ${date}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:-メール対応のみ}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          銀行振込 入金完了

          銀行振込で消費者が入金したときに送信されます

          件名
          ${store} お振込を確認しました
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記の通り、口座へのお振込を確認いたしましたのでご確認ください。
          ——————————————————————————————-
          [支払方法 ] 銀行振込
          [課金ID  ] ${charge_id}
          [金額   ] ${amount}

          [入金額  ] ${deposit_amount}
          [入金日時 ] ${date}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          銀行振込 不足入金

          銀行振込で消費者の入金金額が不足していたときに送信されます

          件名
          ${store} お振込金額の不足について
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。
          下記お申込みに関しまして、お振込金額が不足しております。

          お手数ではございますが、内容をご確認いただき、
          差額分のお振込をお願いいたします。

          なお、本通知と行き違いでお振込みいただいている場合は、
          何卒ご容赦くださいますようお願い申し上げます。
          ——————————————————————————————-
          [支払方法 ] 銀行振込
          [課金ID  ] ${charge_id}
          [金額   ] ${amount}
          [入金額  ] ${deposit_amount}
          [入金日時 ] ${date}

          [差額   ] ${deposit_needed}

          [銀行名  ] ${bank_name}
          [支店番号 ] ${bank_branch_code}
          [支店名  ] ${bank_branch_name}
          [口座種別 ] 普通
          [口座番号 ] ${bank_account_number}
          [口座名義 ] ${bank_account_holder_name}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:-メール対応のみ}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          銀行振込 入金完了(超過)

          銀行振込で消費者の入金金額が超過していたときに送信されます

          件名
          ${store} お振込を確認しました(金額超過)
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記の通り、口座へのお振込を確認いたしましたのでご確認ください。
          ——————————————————————————————-
          [支払方法 ] 銀行振込
          [課金ID  ] ${charge_id}

          [入金額  ] ${deposit_amount}
          [入金日時 ] ${date}

          [超過金額 ] ${exceeded_amount}
          ※上記金額が本来お振込いただく金額より超過で入金されています。
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:-メール対応のみ}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          銀行振込 振込期限の通知

          振込期限日が近づくとこのメールを送信します
          一般設定で送信するかどうか、何日前に送信するかを設定できます

          件名
          ${store} お振込期限について
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。
          下記お申込みに関しまして、お振込期限が近づいております。
          お手数ではございますが、内容をご確認の上お振込をお願いいたします。

          なお、本通知と行き違いでお振込みいただいている場合は、
          何卒ご容赦くださいますようお願い申し上げます。
          ——————————————————————————————-
          [支払方法 ] 銀行振込
          [課金ID  ] ${charge_id}
          [金額   ] ${amount}
          [入金額  ] ${deposit_amount}

          [差額   ] ${deposit_needed}
          [振込期日 ] ${date}

          [銀行名  ] ${bank_name}
          [支店番号 ] ${bank_branch_code}
          [支店名  ] ${bank_branch_name}
          [口座種別 ] 普通
          [口座番号 ] ${bank_account_number}
          [口座名義 ] ${bank_account_holder_name}

          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          コンビニ決済のご案内

          コンビニ決済の申込が行われたときに送信されます

          件名
          ${store} コンビニ決済のお申し込みを受け付けました
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          内容をご確認の上、期日までにご入金をお願いいたします。
          ——————————————————————————————-
          [支払方法 ] コンビニ決済
          [コンビニ名] ${payment_brand}
          [課金ID  ] ${charge_id}
          [金額 ] ${amount}
          [入金期日 ] ${date}

          [(各コンビニ情報の名称)] ${konbini_payment_details}
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          コンビニ決済の取り消し

          コンビニ決済の申込を加盟店側で取り消したときに送信されます

          件名
          ${store} お支払いのキャンセルについて
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。
          下記お申込みに関しまして、キャンセルされましたので
          無効となりました事をお知らせいたします。
          ——————————————————————————————-
          [支払方法 ] コンビニ決済
          [コンビニ名] ${payment_brand}
          [課金ID  ] ${charge_id}
          [金額 ] ${amount}

          ※入金がある場合は、下記までお問い合わせください。
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          コンビニ決済 期限切れ

          コンビニ決済の入金期限が切れたときに送信されます

          件名
          ${store} お支払期限切れについて
          本文
          =========================================================
          このメールは決済されたメールアドレス宛に自動的に送信しております。

          決済情報をご確認のうえ、大切に保管してください。

          =========================================================

          この度は、${store}をご利用いただき誠にありがとうございます。

          下記お申込みに関しまして、お支払期限を過ぎましたので
          無効となりました事をお知らせいたします。
          ——————————————————————————————-
          [支払方法 ] コンビニ支払い
          [コンビニ名] ${payment_brand}
          [課金ID  ] ${charge_id}
          [金額 ] ${amount}
          [入金期限 ] ${date}

          ※入金された場合は、下記までお問い合わせください。
          ——————————————————————————————-
          ${store} お問い合わせ先情報
          [電話番号   ] ${contact_phone_local:-メール対応のみ}
          [メールアドレス] ${contact_email}

          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

          コンビニ決済の詳細

          各コンビニエンスストアごとの、消費者が入金するための情報が含まれています。このテンプレートは「コンビニ決済のご案内」に含まれ、選択したコンビニエンスストアのテンプレート情報が入ります。

          31.6.2 パラメータ

          パラメータを利用することで、消費者が行った処理ごとに結果の値を動的に反映させることができます。
          テンプレートごとに利用できるパラメータは異なるため、各テンプレートの作成画面から確認してください。

          各種パラメーターのご案内

          パラメータ説明
          ${date}処理日時
          ※下記テンプレートのみ入金期限日時を表示
          ・銀行振込(申込完了 / 振込期限切れ(督促有り) / 振込期限の通知)
          ・コンビニ決済のご案内
          ${amount}金額
          ※定期課金の場合は1回あたりの課金金額、分割の場合は総額を表示
          ${payment_type}支払方法 
          ※カード、オンライン決済など
          ${payment_brand}支払ブランド 
          ※Visa、MasterCard、PayPayオンラインなど
          ${transaction_type}課金 or 返金
          ${store}店舗名
          ${charge_id}課金ID
          ${card_holder_name}カード名義 
          ${email_address}顧客メールアドレス
          ${descriptor}利用明細に記載される名称
          ※テストモードの場合は機能せず、パラメータをそのまま表示
          ${contact_email}連絡先メールアドレス
          ${contact_phone}連絡先電話番号
          ${charge_metadata}課金時に付与されたメタデータ
          ${token_metadata}トークン作成時に付与されたメタデータ
          ${subscription_id}定期課金ID
          ${subscription_period}定期課金のサイクル
          ${subscription_next_date}定期課金の次回課金日
          ${subscription_initial_amount}定期課金の初回課金額
          ${subscription_amount}回数無制限の定期課金:1回あたりの課金金額
          回数制限付き定期課金・分割払い:支払いの総額
          ${subscription_payment_details}定期課金の詳細
          ・定期課金種類
          ・課金回数/分割回数
          ${customer_refer_link}カード情報変更/停止URL
          ${link}決済フォームor支払いに必要な情報のリンク
          ${customer_name}顧客名
          ${bank_accout_number}口座番号
          ${bank_branch_code}支店番号
          ${bank_branch_name}支店名
          ${bank_account_type}口座の種類
          ${bank_account_holder_name}振込先口座名
          ${bank_name}振込先銀行名
          ${deposit_amount}入金額
          ${deposit_needed}不足金額
          ${exeed_amount}超過入金額
          ${konbini_payment_details}コンビニ支払い情報詳細
          ${konbini_transaction_id}コンビニ支払い番号など
          ${error_code}エラーコード
          ${error_message}エラー内容
          ※決済サービスによっては利用できないパラメータもございます

          31.6.3 応用的なパラメータの利用方法

          パラメータによっては、メタデータなど1つの項目に複数の値が存在したり、処理の種類によりパラメータに値が入らない場合があります。
          こういった場合にパラメータ内でより細かい指定をすることで、パラメータや複数メタデータをそのままメール本文に反映するのを防ぐことができます。

          • パラメータのデフォルト値を定義する
            ${parameter:-(デフォルト値)} を使用して下さい
            (parameter)に値が無ければ、指定したデフォルト値が表示されます。
            値が無いときに何も表示させたくない場合は、デフォルト値に空白文字を指定してください。
          • 特定のメタデータの値のみを表示する
            ${charge_metadata.(キー)},${token_metadata.(キー)}の形式で指定してください。

          表示させたいメタデータの指定 例

          パラメータメールに反映される情報
          ${subscription_next_date:-無し}次回以降に支払いが残っている場合:2024/08/01
          今回の支払いが最後だった場合:無し
          ${charge_metadata.univapay-product-names}
          または
          ${token_metadata.univapay-product-names}
          商品名
          ${charge_metadata.univapay-phone-number}
          または
          ${token_metadata.univapay-phone-number}
          電話番号

          ${token_metadata.(キー)}の利用が必須のパターン

          下記処理の場合は${charge_metadata.(キー)}を指定してもメタデータが表示されません。

          • リカーリング課金
          • CSV課金
          • リカーリングトークン作成
          • カード情報変更時

          商品ごとに通知メールの文面を分ける

          商品機能をご利用にはオプション契約が必要になります。

          商品ごとにメタデータを付与している場合、${charge_metadata.キー:-(空白)} とすることで、指定したメタデータの値のみメール文面に反映させるような使い方ができます。
          商品を利用した場合のみ表示したいメタデータの値が表示され、商品を利用しない決済の場合は空白になります。

          ①商品にメタデータを付与
           商品ごとにメールで表示させたい文章をメタデータとして追加します。

          ②通知メールテンプレートを編集 
           商品メタデータのキーをproduct-text1とする場合、
          メール通知テンプレート内のタグを ${charge_metadata.product-text1:-}
          とすることで、メールの各箇所に商品別のメール文章のみを表記することができます。

          ③通知メールでの反映を確認
           商品ごとに異なる文章が表示され、商品を指定しない決済の時はメールに何も表示されないことが確認できれば問題ありません。

          31.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(オンライン)の三単合一における「税関申告」が完了税関申告完了

          32. トランザクショントークン - 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
                  }
              }
          }

          33. 利用可能な決済手段

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

          クレジットカード

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

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

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

          Paidy

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

          ブランドガイドライン

          銀行振込

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

          コンビニ決済

          株式会社電算システムの提供する、前払い式のコンビニ決済です。

          決済フォームから消費者情報を入力することで、各種コンビニエンスストアで支払うための情報が発行され、消費者が入金をすることで決済が完了します。

          オンラインモバイル

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

          34. レスポンス

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

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

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

          35. 定期課金

          35.1 定期課金 - 概要

          定期課金とは、本サービスにより定期的かつ自動的に課金することを指します。
          オブジェクト名はsubscriptionです。

          定期課金の作成(create)リクエストはトランザクショントークンを用いて作成されます。
          定期課金は、UPDATECANCELのリクエストで、いつでも停止できます。

          ウェブフックを用いて、定期課金イベントの通知を受け取ることを推奨します。

          • 支払いが成功した時はSUBSCRIPTION_PAYMENTイベント
          • 支払いが失敗した時はSUBSCRIPTION_FAILEDイベント
          • 定期課金がキャンセルされた時はSUBSCRIPTION_CANCELEDイベント

          で、それぞれ通知します。

          “subscription” オブジェクトのデータ構造

          フィールドデータ型備考
          idstring (UUID)定期課金のユニークID
          作成時に自動付与
          store_idstring (UUID)登録された「店舗」のユニークID
          契約時に自動付与
          transaction_token_idstring (UUID)事前に作成したトランザクショントークン
          amountnumber課金額
          currencystring (ISO-4217)通貨
          例:日本円はJPY
          amount_formattedstring現実的に流通する補助通貨がある場合、通貨額での課金額
          例:currencyUSDで課金額が110の場合は1.1
          initial_amountnumber初回の課金
          CREATE時に未指定だとamountを参照
          initial_amount_formattedstring現実的に流通する補助通貨がある場合、通貨額での課金額
          例:currencyUSDで課金額が110の場合は1.1
          schedule_settings.start_onstring (ISO-8601)2回目の課金日
          指定日のタイムゾーンの07:00に実行
          CREATE時に指定可能
          schedule_settings.zone_idstring (IANA Timezone)タイムゾーン
          例:日本はAsia/Tokyo
          schedule_settings.preserve_end_of_monthboolean月末固定の指定が、されている(true)か否(false)か
          schedule_settings.retry_interval半角英数定期課金が失敗したときのリトライ間隔

          存在し得る値(意味):
          PxD(x日)
          PxW(x週間)
          PxM(xか月)
          schedule_settings.termination_mode半角英定期課金の停止リクエストを受理したとき、実際に自動課金のステータスをsupended(一時停止)に変更するタイミング

          指定可能な値(意味):
          immediate(即時)
          on_next_payment(次回課金日)
          status半角英定期課金のステータス
          unverified(初回課金の待機中)
          unconfirmed(初回課金に失敗)
          canceled(永久停止:リクエストで移行し再開不可)
          unpaid(リトライ待ち)
          current(継続中)
          suspended(一時停止:管理画面で「一時停止」ボタンを押下、リトライ回数の超過、リクエストのいずれかで移行)
          completed(指定分完了:再開可)
          metadataメタデータ
          CREATE,UPDATE時はネストで任意のフィールドと値を指定可能
          mode半角英決済のモード
          live(本番)またはtest(テスト)
          created_onISO-8601データの作成日時
          period半角英指定した定期課金の間隔

          存在し得る値(意味):
          daily(毎日)
          weekly(毎週)
          biweekly(隔週)
          monthly(毎月)
          bimonthly(隔月)
          quarterly(3ヶ月)
          semiannually(6ヶ月)
          annually(毎年)
          cyclical_periodISO8601 duration存在し得る値(意味):
          PxD(x日周期)
          PxW(x週間周期)
          PxM(xヶ月周期)
          PxY(x年周期)
          ※CREATEでPeriod未指定なら必須
          next_payment.idUUID支払いのID
          next_payment.due_dateYYYY-MM-DD次回課金日
          next_payment.zone_idIANA Timezoneタイムゾーン
          例:日本はAsia/Tokyo
          next_payment.amount半角数次回課金額
          next_payment.currencyISO-4217通貨
          例:日本円はJPY
          next_payment.amount_formatted半角数
          (小数点)
          現実的に流通する補助通貨がある場合、通貨額での課金額
          例:correncyUSDで課金額が110の場合は1.1
          next_payment.is_paid真偽決済結果(未実行のためfalse固定)
          next_payment.is_last_payment真偽最後の支払いかどうか
          (回数指定時のみtrueが出力され得る)
          next_payment.created_onISO-8601データの作成日時
          next_payment.updated_onISO-8601データの更新日時
          next_payment.retry_dateYYYY-MM-DD次回課金が失敗した場合のリトライ予定日
          表記ルールについては免責事項を参照してください

          35.2 定期課金 - リクエスト

          35.2.1 定期課金 - CREATE

          定期課金オブジェクトのCREATEリクエストには以下が必要です。(括弧内は入力箇所)
          パラメータを指定して様々な種類の定期課金が作成可能です。

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

          リクエスト

          CommandとHeader

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

          利用できるパラメータ

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

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          transaction_token_idstring (UUID) 定期課金有効のトランザクショントークンID
          amountnumber課金額
          currencystring (ISO-4217) ISO-4217形式の通貨
          initial_amountnumber定期的な金額と異なる場合は初回に請求する金額
          periodstring※cyclical_periodを利用しない場合
          定期課金が請求される頻度
          dailyweeklybiweeklymonthlyquarterlysemiannuallyannually のいずれか
          このフィールドが入力されている場合cyclical_periodは利用不可
          分割払いの場合はmonthlyを指定
          cyclical_periodstring (ISO-8601 Duration)※periodを利用しない場合
          課金を行う詳細な頻度(1日間以上)
          例:P3D,P2M,P2M等
          このフィールドが入力されている場合periodは利用不可
          schedule_settings.start_onstring (ISO-8601)以降のすべての支払いがで開始される日付(年月日形式
          時間はzone_idで宣言されたタイムゾーンの午前7時※に固定
          ※毎日の定期課金 および 定期課金開始日が定期課金作成日の1日後な場合に限り午前9時
          schedule_settings.zone_idstring (IANAタイムゾーン)定期課金が請求されるタイムゾーン
          例:Asia/Tokyo
          schedule_settings.preserve_end_of_monthbooleanperiodmonthlyで指定されたstart_onの日付が月末日である場合、以降は月の最終日に料金を請求
          例:start_on2018-06-30の場合、次の請求はtrueの場合は2018-07-31falseの場合は2018-07-30
          schedule_settings.termination_modestring定期課金の停止リクエスト
          immediateon_next_payment のいずれか
          デフォルト値:immediate
          immediate:即座に停止または終了
          on_next_payment:次回課金日の直前に停止または終了
          installment_plan.plan_typestringinstallment_planを指定した定期課金は全てクレジットカード会社による分割払いになり、
          revolving:リボ払い
          fixed_cyclesinstallment_plan.fixed_cycles で指定した回数の分割払い
          revolvingfixed_cycles のいずれか
          installment_plan.fixed_cyclesnumberplan_typefixed_cyclesの場合
          クレジットカード会社での分割払いの回数
          指定可能な値:3,5,6,10,12,15,18,20,24
          ※上記以外の回数はエラー
          first_charge_authorization_onlyboolean初回決済時に行う処理
          true:オーソリ(仮売上)
          false:キャプチャ(実売上)
          デフォルト値:false
          first_charge_capture_afterstring (ISO-8601 Duration)
          first_charge_authorization_onlytrueの場合、自動でキャプチャを行う日
          指定可能な値:1,2,3,4,5,6
          ※上記以外の回数はエラー
          例:3日後を指定する場合はfirst_charge_capture_after:"P3D"
          subscription_plan.plan_typestring回数指定の定期課金を行う場合、fixed_cyclesfixed_cycle_amountのいずれか
          subscription_plan.fixed_cyclesnumbersubscription_plan.plan_type が fixed_cycles の場合
          定期課金を行う回数
          subscription_plan.fixed_cycle_amountnumbersubscription_plan.plan_type が fixed_cycle_amount の場合
          定期課金の1回当たりの支払い金額
          schedule_settings.retry_intervalstring (ISO-8601 Duration)定期課金の支払いが失敗したときにリトライを行う間隔
          ※1日以上かつ定期課金のサイクルよりも短い必要あり
          例:P5Dで失敗後5日毎にリトライ
          metadatajson定期課金に紐づけられたメタデータ

          Bodyの記述例

          curl --request POST \
          --url https://api.univapay.com/subscriptions \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'content-type: application/json' \
          --data '{
            "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
            "amount": 1250,
            "currency": "USD",
            "period": "daily",
            "metadata":{
                "ServiceId": 78435694
            }
          }'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "id": "11ef335e-9aa5-c54a-8313-7f9847da313a",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
              "amount": 1250,
              "currency": "USD",
              "amount_formatted": 12.50,
              "initial_amount": null,
              "initial_amount_formatted": null,
              "subsequent_cycles_start": null,
              "schedule_settings": {
                  "start_on": null,
                  "zone_id": "Asia/Tokyo",
                  "preserve_end_of_month": null,
                  "retry_interval": null,
                  "termination_mode": "immediate"
              },
              "only_direct_currency": false,
              "first_charge_capture_after": null,
              "first_charge_authorization_only": false,
              "status": "unverified",
              "metadata": {
                  "ServiceId": 78435694
              },
              "mode": "test",
              "created_on": "2024-06-26T01:51:28.627023Z",
              "period": "monthly",
              "next_payment": {
                  "id": "11ef335e-9aad-7470-8314-03ee2f51b9cd",
                  "due_date": "2024-06-26",
                  "zone_id": "Asia/Tokyo",
                  "amount": 1250,
                  "currency": "USD",
                  "amount_formatted": 12.50,
                  "is_paid": false,
                  "is_last_payment": false,
                  "created_on": "2024-06-26T01:51:28.627023Z",
                  "updated_on": "2024-06-26T01:51:28.627023Z",
                  "retry_date": null
              }
          }

          35.2.2 定期課金 - GET

          定期課金オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

          • 店舗ID(URLの{storeId}部分)
          • 定期課金ID(URLの{subscriptionId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId} \
          --header 'Authorization: Bearer {secret}.{jwt}'

          利用できるパラメータ

          リクエストURLに追加できるクエリパラメータは以下です。

          フィールドデータ型備考
          pollingbooleanステータスが pending(初期ステータス)から別のステータスに変更されるまで
          課金のステータスを内部でポーリングする

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/subscriptions/11ef335e-9aa5-c54a-8313-7f9847da313a \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "id": "11ef335e-9aa5-c54a-8313-7f9847da313a",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
              "amount": 1250,
              "currency": "USD",
              "amount_formatted": 12.50,
              "initial_amount": null,
              "initial_amount_formatted": null,
              "subsequent_cycles_start": null,
              "schedule_settings": {
                  "start_on": null,
                  "zone_id": "Asia/Tokyo",
                  "preserve_end_of_month": null,
                  "retry_interval": null,
                  "termination_mode": "immediate"
              },
              "only_direct_currency": false,
              "first_charge_capture_after": null,
              "first_charge_authorization_only": false,
              "status": "current",
              "metadata": {
                  "ServiceId": 78435694
              },
              "mode": "test",
              "created_on": "2024-06-26T01:51:28.627023Z",
              "period": "monthly",
              "next_payment": {
                  "id": "11ef335e-9ae2-8322-8e79-e7ba4b56234e",
                  "due_date": "2024-07-26",
                  "zone_id": "Asia/Tokyo",
                  "amount": 1250,
                  "currency": "USD",
                  "amount_formatted": 12.50,
                  "is_paid": false,
                  "is_last_payment": false,
                  "created_on": "2024-06-26T01:51:29.025129Z",
                  "updated_on": "2024-06-26T01:51:29.025129Z",
                  "retry_date": null
              }
          }

          35.2.3 定期課金 - LIST

          定期課金オブジェクトに対するLISTリクエストには以下が必要です。(括弧内は入力箇所)

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

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/subscriptions \
          --header 'Authorization: Bearer {secret}.{jwt}'

          利用できるパラメータ

          リクエストURLに追加できるクエリパラメータは以下です。
          全てがand条件で検索され、リストが作成されます。

          フィールドデータ型備考
          search半角英数メタデータの値で検索
          status半角英定期課金のステータス
          unverified, unconfirmed, canceled, unpaid, suspended, current, completed のいずれか
          mode半角英定期課金の実行モード
          live,testのいずれか

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/subscriptions \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "items": [
                  {
                      "id": "11ef335e-9aa5-c54a-8313-7f9847da313a",
                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                      "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
                      "amount": 1250,
                      "currency": "USD",
                      "amount_formatted": 12.50,
                      "initial_amount": null,
                      "initial_amount_formatted": null,
                      "subsequent_cycles_start": null,
                      "schedule_settings": {
                          "start_on": null,
                          "zone_id": "Asia/Tokyo",
                          "preserve_end_of_month": null,
                          "retry_interval": null,
                          "termination_mode": "immediate"
                      },
                      "only_direct_currency": false,
                      "first_charge_capture_after": null,
                      "first_charge_authorization_only": false,
                      "status": "current",
                      "metadata": {
                          "ServiceId": 78435694
                      },
                      "mode": "test",
                      "created_on": "2024-06-26T01:51:28.627023Z",
                      "period": "monthly",
                      "merchant_name": "管理画面ガイド",
                      "store_name": "管理画面ガイド_TEST店舗",
                      "payment_type": "card",
                      "next_payment_date": "2024-07-26",
                      "user_data": {
                          "type": "charge",
                          "cardholder_name": "taro yamada",
                          "email": "test@test.com",
                          "brand": "visa",
                          "gateway": null,
                          "service_provider": null
                      }
                  },
                  {
                      "id": "11ef3355-6cec-f0dc-a579-d3bb89aab116",
                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                      "transaction_token_id": "11ef3355-6cc6-194e-a5e0-bfd94bdad70d",
                      "amount": 100,
                      "currency": "JPY",
                      "amount_formatted": 100,
                      "initial_amount": null,
                      "initial_amount_formatted": null,
                      "subsequent_cycles_start": null,
                      "schedule_settings": {
                          "start_on": null,
                          "zone_id": "Asia/Tokyo",
                          "preserve_end_of_month": null,
                          "retry_interval": null,
                          "termination_mode": "immediate"
                      },
                      "only_direct_currency": false,
                      "first_charge_capture_after": null,
                      "first_charge_authorization_only": false,
                      "status": "current",
                      "metadata": {},
                      "mode": "test",
                      "created_on": "2024-06-26T00:45:46.447678Z",
                      "period": "monthly",
                      "merchant_name": "管理画面ガイド",
                      "store_name": "管理画面ガイド_TEST店舗",
                      "payment_type": "card",
                      "next_payment_date": "2024-07-26",
                      "user_data": {
                          "type": "charge",
                          "cardholder_name": "hanako yamada",
                          "email": "demo@demo.com",
                          "brand": "master",
                          "gateway": null,
                          "service_provider": null
                      }
                  },
          
          <中略>      
          
              ],
              "has_more": true,
              "total_hits": 99
          }

          35.2.4 定期課金 - UPDATE

          定期課金オブジェクトに対するUPDATEリクエストには以下が必要です。(括弧内は入力箇所)

          • 店舗ID(URLの{storeId}部分)
          • 定期課金ID(URLの{subscriptionId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request PATCH \
          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId} \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'content-type: application/json' \

          利用できるパラメータ

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

          フィールドデータ型備考
          transaction_token_idstring (UUID)定期課金で使用するトランザクショントークン
          クレジットカードの有効期限が切れ、他のカードの切り替える為などに使用
          定期課金の状態が unconfirmedunpaidcurrentsuspended の場合に変更可能
          amountnumber定期課金の課金額
          metadatajson定期課金に紐づいているメタデータ
          statusstring定期課金の状態
          suspended:ステータスを一時停止
          unpaid:一時停止の定期課金を再開
          schedule_settingsjson定期課金の停止リクエストが送信されたときの処理
          termination_modeの値によって停止のタイミングを指定
          immediate:即座に停止または終了
          on_next_payment:次回課金日の直前に停止または終了
          例:{"termination_mode": "on_next_payment"}

          Bodyの記述例

          curl --request PATCH \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/subscriptions/11ef335e-9aa5-c54a-8313-7f9847da313a \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'content-type: application/json' \
          --data '{
            "metadata":{
                "ServiceId": 7843568
            },
            "transaction_token_id": "11ef3362-3700-c54a-9baa-6f7e6527c9d9",
            "schedule_settings": {"termination_mode": "on_next_payment"}
          }'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "id": "11ef335e-9aa5-c54a-8313-7f9847da313a",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "transaction_token_id": "11ef3362-3700-c54a-9baa-6f7e6527c9d9",
              "amount": 1250,
              "currency": "USD",
              "amount_formatted": 12.50,
              "initial_amount": null,
              "initial_amount_formatted": null,
              "subsequent_cycles_start": null,
              "schedule_settings": {
                  "start_on": null,
                  "zone_id": "Asia/Tokyo",
                  "preserve_end_of_month": null,
                  "retry_interval": null,
                  "termination_mode": "on_next_payment"
              },
              "only_direct_currency": false,
              "first_charge_capture_after": null,
              "first_charge_authorization_only": false,
              "status": "current",
              "metadata": {
                  "ServiceId": 7843568
              },
              "mode": "test",
              "created_on": "2024-06-26T01:51:28.627023Z",
              "period": "monthly",
              "next_payment": {
                  "id": "11ef335e-9ae2-8322-8e79-e7ba4b56234e",
                  "due_date": "2024-07-26",
                  "zone_id": "Asia/Tokyo",
                  "amount": 1250,
                  "currency": "USD",
                  "amount_formatted": 12.50,
                  "is_paid": false,
                  "is_last_payment": false,
                  "created_on": "2024-06-26T01:51:29.025129Z",
                  "updated_on": "2024-06-26T01:51:29.025129Z",
                  "retry_date": null
              }
          }

          35.2.5 定期課金 - CANCEL

          定期課金オブジェクトに対するCANCELリクエストには以下が必要です。(括弧内は入力箇所)
          作成された既存の定期課金を削除し、管理画面のステータスは「永久停止」となり再開不可ですのでご注意ください。

          • 店舗ID(URLの{storeId}部分)
          • 定期課金ID(URLの{subscriptionId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request DELETE \
          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId} \
          --header 'Authorization: Bearer {secret}.{jwt}'

          Bodyの記述例

          curl --request DELETE \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/subscriptions/11ef335e-9aa5-c54a-8313-7f9847da313a \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

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

          CodeとHeader

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

          35.2.6 定期課金 - 課金 - LIST

          定期課金オブジェクトに対する課金LISTリクエストには以下が必要です。(括弧内は入力箇所)
          課金のデータモデルの詳細は課金オブジェクトを参照してください。

          • 店舗ID(URLの{storeId}部分)
          • 定期課金ID(URLの{subscriptionId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId}/charges \
          --header 'Authorization: Bearer {secret}.{jwt}'

          利用できるパラメータ

          リクエストURLに追加できるクエリパラメータは以下です。
          全てがand条件で検索され、リストが作成されます。

          フィールドデータ型備考
          last_fournumber使用したクレジットカードの下4桁でフィルタリングする
          指定する場合は、nameexp_monthexp_yearも含める必要あり
          namestringカード所有者の名前でフィルタリングする
          指定する場合は、last_fourexp_monthexp_yearも含める必要あり
          exp_monthnumber使用したカードの有効期限(月)でフィルタリングする
          指定する場合は、 last_fournameexp_yearも含める必要あり
          exp_yearnumber使用したカードの有効期限(年)でフィルタリングする
          指定する場合は、last_fournameexp_monthも含める必要あり
          card_numbernumberクレジットカード番号でフィルタリングする
          fromstring (ISO-8601)この日付以降に作成された課金を表示する
          tostring (ISO-8601)この日付より前に作成された課金を表示する
          emailstringメールアドレスでフィルタリングする
          phonestring電話番号でフィルタリングする
          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/23f45c5e-18ef-11e7-96ee-d756c0178178/subscriptions/25d0fb2c-18ef-11e7-9dd3-db8fb7b820e7/charges \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
            "items": [
              {
                "id": "26f9059e-18ef-11e7-a74f-173cf0f9475a",
                "store_id": "23f45c5e-18ef-11e7-96ee-d756c0178178",
                "transaction_token_id": "259e9240-18ef-11e7-94da-97e85c2e269c",
                "requested_amount": 483200,
                "requested_currency": "EUR",
                "requested_amount_formatted": 4832,
                "charged_amount": 483200,
                "charged_currency": "EUR",
                "charged_amount_formatted": 4832,
                "status": "successful",
                "error": null,
                "metadata": {},
                "mode": "test",
                "created_on": "2018-07-13T02:55:00.07367Z"
              },
              {
                "id": "270858e6-18ef-11e7-adfa-6ff75ea1c202",
                "store_id": "23f45c5e-18ef-11e7-96ee-d756c0178178",
                "transaction_token_id": "259f4a8c-18ef-11e7-b8fe-17e053dc5c54",
                "requested_amount": 2491,
                "requested_currency": "JPY",
                "requested_amount_formatted": 2491,
                "charged_amount": 2491,
                "charged_currency": "JPY",
                "charged_amount_formatted": 2491,
                "status": "successful",
                "error": null,
                "metadata": {},
                "mode": "test",
                "created_on": "2018-07-13T02:55:00.07367Z"
              }
            ],
            "has_more": false
          }

          35.2.7 支払い - 概要

          このリクエストでは、定期課金の支払い情報を確認することができます。
          支払いが完了しているか、次回課金日がいつかなどを確認したい場合はこちらをご利用下さい。

          定期課金の支払いオブジェクト

          フィールドデータ型備考
          idstring (UUID)支払いのID
          due_datestring (ISO-8601)支払いが実行される日付
          時刻はzone_idで指定されたタイムゾーンのAM7:00
          zone_idstring (IANA Timezone)支払いを実行する時刻が基準とするタイムゾーン
          amountnumber課金金額
          currencystring (ISO-4217)課金金額の通貨
          amount_formattedstring補助単位があれば小数の値を含む課金金額
          is_paidboolean支払いが完了したかどうか
          is_last_paymentbooleanこの支払が定期課金の最後の支払いかどうか
          分割払いの場合のみ適用
          created_onstring (ISO-8601)この支払いの作成日時

          35.2.8 支払い - GET

          定期課金オブジェクトに対する支払いGETリクエストには以下が必要です。(括弧内は入力箇所)

          • 店舗ID(URLの{storeId}部分)
          • 定期課金ID(URLの{subscriptionId}部分)
          • 課金ID(URLの{paymentId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId}/payments/{paymentId} \
          --header 'Authorization: Bearer {secret}.{jwt}'

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/37ff5664-18c6-11e7-8221-ff4914d76afc/subscriptions/aaadee6a-18e3-11e7-a461-e3b078a7dc52/payments/11e89a0a-8cee-d660-b984-3fcaaed46e7c \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
            "id": "11e89a0a-8cee-d660-b984-3fcaaed46e7c",
            "due_date": "2018-08-21",
            "zone_id": "Asia/Tokyo",
            "amount": 10000,
            "currency": "JPY",
            "amount_formatted": 10000,
            "is_paid": false,
            "is_last_payment": false,
            "created_on": "2018-08-07T06:24:33.961256Z"
          }

          35.2.9 支払い - LIST

          定期課金オブジェクトに対する支払いLISTリクエストには以下が必要です。(括弧内は入力箇所)

          • 店舗ID(URLの{storeId}部分)
          • 定期課金ID(URLの{subscriptionId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId}/payments \
          --header 'Authorization: Bearer {secret}.{jwt}'

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/37ff5664-18c6-11e7-8221-ff4914d76afc/subscriptions/aaadee6a-18e3-11e7-a461-e3b078a7dc52/payments \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
            "items": [
              {
                "id": "11e89a0a-8cee-d660-b984-3fcaaed46e7c",
                "due_date": "2018-08-21",
                "zone_id": "Asia/Tokyo",
                "amount": 10000,
                "currency": "JPY",
                "amount_formatted": 10000,
                "is_paid": false,
                "is_last_payment": false,
                "created_on": "2018-08-07T06:24:33.961256Z",
                "updated_on": "2018-08-07T06:24:33.961256Z"
              },
              {
                "id": "11e89a0a-8cc5-2662-9460-2b14b1a601ba",
                "due_date": "2018-08-07",
                "zone_id": "Asia/Tokyo",
                "amount": 1000,
                "currency": "JPY",
                "amount_formatted": 1000,
                "is_paid": true,
                "is_last_payment": false,
                "created_on": "2018-08-07T06:24:33.646223Z",
                "updated_on": "2018-08-07T06:24:33.88776Z"
              }
            ],
            "has_more": false
          }

          36. 管理画面の使い方

          管理画面ガイド

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

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

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

          もっとも簡単な利用方法

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

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

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

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

          37. 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)までお問い合わせください。

          38. 返金

          38.1 返金 - 概要

          返金(Refund)は、消費者にお金を返すために使用します。
          詐欺や誤った注文、重複課金などの対応として返金(Refund)が行われます。
          返金(Refund)は、課金(Charge)と同じ通貨で行う必要があり、その金額は課金(Charge)と同額かそれ以下となります。
          合計の返金金額が課金金額以下であれば、一つの課金に対して複数の返金を行うこともできます。

          返金(Refund)は、非同期処理されます。
          まず作成時には、pending状態になっており、ステータスを自動的にsuccessfulfailederrorに変更します。
          ウェブフックREFUND_FINISHEDイベントを登録して返金(Refund)の最終状態を得ることができます。

          返金(Refund)が行われた時でも、返金対象の課金のトランザクション費用は請求されます。
          テストデータの情報は、テストカード番号を参照下さい。

          返金(Refund)オブジェクト

          フィールド名データ型備考
          idstring (UUID)返金のユニークID
          store_idstring (UUID)返金対象の課金が属する店舗のID
          charge_idstring (UUID)返金(Refund)を行う課金のID
          statusstring返金のステータス
          pendingsuccessfulfailederrorのいずれか
          amountnumber返金の金額
          currencystring (ISO-4217)返金する金額の通貨
          amount_formattedstring補助単位があればその小数の値を含む返金のリクエスト金額
          reasonstring返金の理由
          fraudduplicatecustomer_requestchargebackのいずれか
          chargebackは加盟店で設定不可で、後日カード会社から課金が拒否された場合に設定
          messagestring返金の詳細な理由
          error.codestring課金が失敗またはエラーになった理由を表すエラーコード
          error.messagestring課金が失敗した理由
          error.detailstring課金が失敗した詳細理由
          metadatajson返金に紐づいている加盟店定義のメタデータ
          modestringliveまたはtest
          created_onstring (ISO-8601)返金が作成された日時

          38.2 返金 - リクエスト

          38.2.1 返金 - CREATE

          返金オブジェクトに対するCREATEリクエストには以下が必要です。(括弧内は入力箇所)

          • 店舗ID(URLの{storeId}部分)
          • 課金ID(URLの{chargeId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request POST \
          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/refunds \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'content-type: application/json' \

          利用できるパラメータ

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

          フィールド
          赤字は必須
          は条件付き必須
          データ型備考
          amountnumber課金金額以下の返金金額
          currencystring (ISO-4217) ISO 4217の通貨コードで指定
          reasonstring返金理由
          fraudduplicatecustomer_requestのいずれか
          messagestring返金の詳細理由
          metadatajson自由に設定可能
          詳細はメタデータを参照

          Bodyの記述例

          curl --request POST \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c3-3cfe-3bc0-abed-0bb96f792078/refunds \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'content-type: application/json' \
          --data '{
            "amount": 250,
            "currency": "JPY",
            "reason": "customer_request",
            "message": "15 percent off",
            "metadata": {
                "coupon": "VIP007"
            }
          }'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "id": "11ef32c8-c721-823a-ba45-77212da778fa",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
              "status": "pending",
              "amount": 250,
              "currency": "JPY",
              "amount_formatted": 250,
              "reason": "customer_request",
              "message": "15 percent off",
              "error": null,
              "metadata": {
                  "coupon": "VIP007"
              },
              "mode": "test",
              "created_on": "2024-06-25T07:58:58.748326Z"
          }

          38.2.2 返金 - GET

          返金オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

          • 店舗ID(URLの{storeId}部分)
          • 課金ID(URLの{chargeId}部分)
          • 返金ID(URLの{id}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/refunds/{id} \
          --header 'Authorization: Bearer {secret}.{jwt}'

          利用できるパラメータ

          リクエストURLに追加できるクエリパラメータは以下です。

          フィールド名データ型備考
          pollingbooleanステータスが pending(初期ステータス)から別のステータスに変更されるまで、課金のステータスを内部でポーリングするようにAPIに指示する

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c3-3cfe-3bc0-abed-0bb96f792078/refunds/11ef32c8-c721-823a-ba45-77212da778fa \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "id": "11ef32c8-c721-823a-ba45-77212da778fa",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
              "status": "successful",
              "amount": 250,
              "currency": "JPY",
              "amount_formatted": 250,
              "reason": "customer_request",
              "message": "15 percent off",
              "error": null,
              "metadata": {
                  "coupon": "VIP007"
              },
              "mode": "test",
              "created_on": "2024-06-25T07:58:58.748326Z"
          }

          38.2.3 返金 - LIST

          返金オブジェクトのLISTリクエストには以下が必要です。(括弧内は入力箇所)
          課金 / 返金などをまとめて表示させたい場合はトランザクション:Listを推奨します。

          • 店舗ID(URLの{storeId}部分)
          • 課金ID(URLの{chargeId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/refunds \
          --header 'Authorization: Bearer {secret}.{jwt}'

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c3-3cfe-3bc0-abed-0bb96f792078/refunds \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "items": [
                  {
                      "id": "11ef32c8-c721-823a-ba45-77212da778fa",
                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                      "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
                      "status": "successful",
                      "amount": 250,
                      "currency": "JPY",
                      "amount_formatted": 250,
                      "reason": "customer_request",
                      "message": "15 percent off",
                      "error": null,
                      "metadata": {
                          "coupon": "VIP007"
                      },
                      "mode": "test",
                      "created_on": "2024-06-25T07:58:58.748326Z",
                      "merchant_name": "管理画面ガイド",
                      "store_name": "管理画面ガイド_TEST店舗"
                  },
                {
                      "id": "11ef32c9-f49b-a6ea-9f24-17662f077450",
                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                      "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
                      "status": "successful",
                      "amount": 100,
                      "currency": "JPY",
                      "amount_formatted": 100,
                      "reason": "customer_request",
                      "message": "return",
                      "error": null,
                      "metadata": {},
                      "mode": "test",
                      "created_on": "2024-06-25T08:12:15.763927Z",
                      "merchant_name": "管理画面ガイド",
                      "store_name": "管理画面ガイド_TEST店舗"
                  }
              ],
              "has_more": false,
              "total_hits": 2
          }

          38.2.4 返金 - 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}/refunds \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'content-type: application/json' \

          利用できるパラメータ

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

          フィールド名データ型備考
          metadatajson返金(Refund)に紐づくメタデータ

          Bodyの記述例

          curl --request PATCH \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/refunds/11ef32c8-c721-823a-ba45-77212da778fa \
          --header 'Authorization: Bearer {secret}.{jwt}' \
          --header 'content-type: application/json' \
          --data '{"metadata": {"customer_id":5555}}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "id": "11ef32c8-c721-823a-ba45-77212da778fa",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
              "status": "successful",
              "amount": 250,
              "currency": "JPY",
              "amount_formatted": 250,
              "reason": "customer_request",
              "message": "15 percent off",
              "error": null,
              "metadata": {
                  "coupon": "VIP007",
                  "customer_id": 5555
              },
              "mode": "test",
              "created_on": "2024-06-25T07:58:58.748326Z"
          }

          39. トランザクショントークン - 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

          40. パラメータ(基本動作)

          フィールド
          赤字は必須
          は条件付き必須
          許容する値備考省略時の値
          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メソッドであるため、値を"(ダブルクォーテーション)で囲む必要はありません。

          41. ページネーション

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

          42. 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件/日

          43. キャンセル

          43.1 キャンセル - 概要

          キャンセルリソースは、awaiting もしくは authorized 状態の課金に対してキャンセルを作成する為に使われ、またその状態を表現します。
          これは、コンビニ決済で課金を作成した時、もしくはクレジットカード(Apple Pay を含む)決済でオーソリを行った際に利用します。
          successful 状態の課金については、返金 を参照ください。

          キャンセルオブジェクト

          フィールド名データ型備考
          idstring (UUID)キャンセルのID
          store_idstring (UUID)キャンセルが行われた店舗のID
          charge_idstring (UUID)キャンセルが行われた課金のID
          statusstringキャンセルの状態
          pendingsuccessfulfailederrorのいずれか
          error.codestring課金が失敗またはエラーになった理由を表すエラーコード
          error.messagestring課金が失敗した理由
          error.detailstring課金が失敗した詳細理由
          metadatajsonキャンセルに紐づいているメタデータ
          modestringliveまたはtest
          created_onstring (ISO-8601)キャンセルが作成された日時

          43.2 キャンセル - リクエスト

          43.2.1 キャンセル - CREATE

          キャンセルオブジェクトに対するCREATEリクエストには以下が必要です。(括弧内は入力箇所)
          awaiting もしくは authorized 状態の課金に対してキャンセルを作成することができます。

          • 店舗ID(URLの{storeId}部分)
          • 課金ID(URLの{chargeId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request POST \
          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/cancels \
          --header 'Authorization: Bearer {secret}.{jwt}'
          --header 'Content-type: application/json'

          利用できるパラメータ

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

          フィールド名データ型備考
          metadatajsonキャンセルに紐付けるメタデータ

          Bodyの記述例

          curl --request POST \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c2-eecd-ed24-abb8-cf4e336a1340/cancels \
          --header 'Authorization: Bearer {secret}.{jwt}'
          --header 'Content-type: application/json'
          --data '{"metadata": {"order_id": 1234}}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "id": "11ef32cc-e895-655e-8e33-e36629277b4f",
              "charge_id": "11ef32c2-eecd-ed24-abb8-cf4e336a1340",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "status": "pending",
              "error": null,
              "metadata": {
                  "order_id": 1234
              },
              "mode": "test",
              "created_on": "2024-06-25T08:28:32.859366Z"
          }

          43.2.2 キャンセル - GET

          キャンセルオブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

          • 店舗ID(URLの{storeId}部分)
          • 課金ID(URLの{chargeId}部分)
          • キャンセルされた課金ID(URLの{id}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/cancels/{id} \
          --header 'Authorization: Bearer {secret}.{jwt}'

          利用できるパラメータ

          リクエストURLに追加できるクエリパラメータは以下です。

          フィールド名データ型備考
          pollingbooleanキステータスが pending(初期ステータス)から別のステータスに変更されるまで、課金のステータスを内部でポーリングするようにAPIに指示する

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c2-eecd-ed24-abb8-cf4e336a1340/cancels/11ef32cc-e895-655e-8e33-e36629277b4f \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "id": "11ef32cc-e895-655e-8e33-e36629277b4f",
              "charge_id": "11ef32c2-eecd-ed24-abb8-cf4e336a1340",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "status": "successful",
              "error": null,
              "metadata": {
                  "order_id": 1234
              },
              "mode": "test",
              "created_on": "2024-06-25T08:28:32.859366Z"
          }

          43.2.3 キャンセル - LIST

          キャンセルオブジェクトに対するLISTリクエストには以下が必要です。(括弧内は入力箇所)
          awaiting もしくは authorized 状態の課金に対して行われたキャンセルの一覧を取得できます。

          • 店舗ID(URLの{storeId}部分)
          • 課金ID(URLの{chargeId}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/cancels \
          --header 'Authorization: Bearer {secret}.{jwt}'

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c2-eecd-ed24-abb8-cf4e336a1340/cancels \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "items": [
                  {
                      "id": "11ef32cc-e895-655e-8e33-e36629277b4f",
                      "charge_id": "11ef32c2-eecd-ed24-abb8-cf4e336a1340",
                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                      "status": "successful",
                      "error": null,
                      "metadata": {
                          "order_id": 1234
                      },
                      "mode": "test",
                      "created_on": "2024-06-25T08:28:32.859366Z"
                  },
                {
                      "id": "11ef32ce-ce90-3272-9ec3-c35d8985dfc2",
                      "charge_id": "11ef32c2-eecd-ed24-abb8-cf4e336a1340",
                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                      "status": "successful",
                      "error": null,
                      "metadata": {},
                      "mode": "test",
                      "created_on": "2024-06-25T08:42:08.198036Z"
                  }
              ],
              "has_more": false
          }

          43.2.4 キャンセル - UPDATE

          キャンセルオブジェクトに対するUPDATEリクエストには以下が必要です。(括弧内は入力箇所)
          キャンセルした時に付与したメタデータを編集することができます。

          • 店舗ID(URLの{storeId}部分)
          • 課金ID(URLの{chargeId}部分)
          • キャンセルされた課金ID(URLの{id}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Header{jwt}部分)

          リクエスト

          CommandとHeader

          curl --request PATCH \
          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/cancels/{id} \
          --header 'Authorization: Bearer {secret}.{jwt}'
          --header 'Content-type: application/json'

          利用できるパラメータ

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

          フィールド名データ型備考
          metadatajsonキャンセルに紐付けるメタデータ

          Bodyの記述例

          curl --request PATCH \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32ce-c739-9e0a-9ada-37dba0724131/cancels/11ef32ce-ce90-3272-9ec3-c35d8985dfc2 \
          --header 'Authorization: Bearer {secret}.{jwt}'
          --header 'Content-type: application/json'
          --data '{"metadata": {"order_id": 1234, "reason": "expired"}}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "id": "11ef32ce-ce90-3272-9ec3-c35d8985dfc2",
              "charge_id": "11ef32ce-c739-9e0a-9ada-37dba0724131",
              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "status": "successful",
              "error": null,
              "metadata": {
                  "reason": "expired",
                  "order_id": 1234
              },
              "mode": "test",
              "created_on": "2024-06-25T08:42:08.198036Z"
          }

          44. 課金 - 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"
              }
          }

          45. パラメータ(定期課金/分割払い)

          基本動作については別途パラメータ解説ページがあり、左メニューから閲覧可能です。

          フィールド名はローワーキャメルケースで記載する必要があります。
          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
          cardInstallmentOptions半角数allowCardInstallments=true の時、ドロップダウンメニューでの選択肢を制御

          選択可能な値(カンマ区切り):
          1356101215182024revolving
          全て
          表記ルールについては免責事項を参照してください

          46. 決済フォームの種類

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

          フォームのセキュリティ

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

          決済フォームの選択基準

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

          消費者の支払いフロー

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

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

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

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

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

          47. メタデータ

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

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

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

          有効なメタデータの例

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

          48. 設置 – (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
          (個別の指定が必要な場合)
          記述ルールについては免責事項を参照してください

          49. トークンとは

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

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

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

          トークンの種別

          当社サービスで発行できるトークンの種別(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
          いつでも課金できる状態の
          「リカーリングトークン」を作成
          (要保存)
          初回の課金を行い、かつ、
          いつでも課金できる状態の
          「リカーリングトークン」を作成
          (要保存)

          50. エラーについて

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

          確認者
          場所
          消費者

          ・決済完了画面

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

          加盟店さま

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

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

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

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

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

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

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

          51. トランザクション

          51.1 トランザクション - 概要

          トランザクション履歴とは、実行済みの課金と返金のことです。
          貸借のアクティビティにアクセスできるようになっています。

          課金返金の一覧よりもこの閲覧方式を用いることを推奨します。

          トランザクションオブジェクト

          フィールドデータ型備考
          merchant_idstring (UUID)課金が作成された加盟店のユニークID
          merchant_namestring加盟店名
          store_idstring (UUID)課金が作成された店舗のユニークID
          store_namestring店舗名
          resource_idstring (UUID)このエントリーが参照しているリソースのユニークID
          typechargeであれば課金のID、refundであれば返金のID
          amountnumber課金または返金の金額
          currencystring (ISO-4217)トランザクションの通貨
          amount_formattedstring補助単位があればその小数の値を含む課金か返金の金額
          typestringchargeまたはrefundのいずれか
          statusstringpendingsuccessfulfailederroredのいずれか
          payment_typestring決済処理の支払い方法
          modestringliveまたはtest
          metadatajson課金に付与されたメタデータ
          bank_transfer_latest_deposit_datestring (ISO-8601)銀行振込の場合 振込日
          bank_transfer_payment_statusstring銀行振込の場合 決済のステータス
          unpaid(未入金), insufficient(不足), exact(丁度), exceeded(超過) のいずれか
          created_onstring (ISO-8601)トランザクションの日時

          51.2 トランザクション - リクエスト

          51.2.1 トランザクション - LIST

          トランザクションオブジェクトに対するLISTリクエストには以下が必要です。(括弧内は入力箇所)

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

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId}/transaction_history \
          --header 'Authorization: Bearer {secret}.{jwt}'
          --header 'Content-type: application/json'
          すべての店舗を表示する
          curl --request GET \
          --url https://api.univapay.com/transaction_history \
          --header 'Authorization: Bearer {secret}.{jwt}'
          --header 'Content-type: application/json'

          利用できるパラメータ

          リクエストURLに追加できるクエリパラメータは以下です。
          全てがand条件で検索され、リストが作成されます。

          フィールドデータ型備考
          fromstring (ISO-8601)指定された日時以降でフィルタリングする
          例:2024年1月23日の場合
          2024-01-23T00:00:00Z
          tostring (ISO-8601)指定された日時以前でフィルタリングする
          例:2024年1月23日の場合
          2024-01-23T00:00:00Z
          searchstring課金ID, 返金ID, メタデータの情報、カード名義人名、カード名義人メールアドレス、カード番号下4桁のいずれかでフィルタリングする
          typestringcharge,refundのいずれか
          statusstring状態でフィルタリングする
          課金もしくは返金の状態のいずれか
          modestring実行モードでフィルタリングする
          liveまたはtest

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/transaction_history?from=2024-06-01T00:00:00Z&to=2024-06-25T00:00:00Z \
          --header 'Authorization: Bearer {secret}.{jwt}'
          すべての店舗を表示する
          curl --request GET \
          --url https://api.univapay.com/transaction_history?from=2024-06-01T00:00:00Z&to=2024-06-25T00:00:00Z \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "items": [
                  {
                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                      "resource_id": "11ef327b-f037-10ce-b891-9b43076af963",
                      "charge_id": null,
                      "amount": 100,
                      "currency": "JPY",
                      "amount_formatted": 100,
                      "type": "charge",
                      "status": "successful",
                      "metadata": {},
                      "created_on": "2024-06-24T22:48:56.42805Z",
                      "mode": "test",
                      "merchant_name": "管理画面ガイド",
                      "store_name": "管理画面ガイド_TEST店舗",
                      "payment_type": "card",
                      "user_data": {
                          "type": "charge",
                          "cardholder_name": "taro yamada",
                          "cardholder_email_address": "test@test.com",
                          "brand": "visa",
                          "gateway": "test",
                          "service_provider": "test",
                          "refunds": []
                      },
                      "bank_transfer_payment_status": null,
                      "bank_transfer_latest_deposit_date": null
                  },
                  {
                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                      "resource_id": "11ef327b-efeb-2efc-adc5-ff26c8964860",
                      "charge_id": null,
                      "amount": 100,
                      "currency": "JPY",
                      "amount_formatted": 100,
                      "type": "charge",
                      "status": "successful",
                      "metadata": {},
                      "created_on": "2024-06-24T22:48:55.930755Z",
                      "mode": "test",
                      "merchant_name": "管理画面ガイド",
                      "store_name": "管理画面ガイド_TEST店舗",
                      "payment_type": "card",
                      "user_data": {
                          "type": "charge",
                          "cardholder_name": "hanako yamada",
                          "cardholder_email_address": "demo@demo.com",
                          "brand": "master",
                          "gateway": "test",
                          "service_provider": "test",
                          "refunds": []
                      },
                      "bank_transfer_payment_status": null,
                      "bank_transfer_latest_deposit_date": null
                  },
          
          <中略>
          
              ],
              "has_more": true,
              "total_hits": 99
          }

          52. 課金 - 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"
              }
          }

          53. ポーリング

          概要

          ポーリングとは、対象のトランザクションに対してステータスの変化を検出するまで 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の制限を受けないよう適切なエラー処理を行ったポーリングの仕組みを実装する必要があります。
            そのため、当社の提供する手段を利用した実装を推奨します。

          54. 加盟店

          54.1 加盟店 - 概要

          加盟店リソースはアカウントの所有者についての情報と、この加盟店で作成される店舗のデフォルト設定を表示します。

          加盟店オブジェクト

          フィールド名データ型備考
          idUUID加盟店を識別するID。一般的に merchantId として使われます。
          namestring加盟店の名称
          emailstring加盟店のメールアドレス
          verifiedboolean加盟店が審査済みかどうか
          created_onstring (ISO-8601)加盟店の作成日時
          configuration.percent_feenumberこの店舗でのトランザクションごとの手数料率
          ※実際の精算上の金額が正確に反映されていない場合があります
          configuration.flat_feesnumberこの店舗の固定トランザクション費用
          ※実際の精算上の金額が正確に反映されていない場合があります
          configuration.logo_urlstringストアロゴのURL
          configuration.countrystringこの店舗の拠点となる国。 「外国の」カードと見なされるものに影響する
          configuration.languagestringデフォルトの言語
          configuration.display_time_zonestringデフォルトの表示タイムゾーン
          configuration.min_transfer_payoutstring登録された銀行口座への送金前に積み立てられた最低金額
          configuration.maximum_charge_amountsstringデフォルトの最大課金額
          configuration.user_transactions_configuration.enabledbooleanトランザクションで加盟店にメールを送信するかどうか
          configuration.user_transactions_configuration.notify_customerbooleanトランザクションで顧客にメールを送信するかどうか
          configuration.card_configuration.enabledbooleanカードが利用可能か
          configuration.card_configuration.debit_enabledbooleanデビットカードが利用可能か
          configuration.card_configuration.prepaid_enabledbooleanプリペイドカードが利用可能か
          configuration.card_configuration.forbidden_card_brandsarray[string]このストアでの使用が許可されていないカードブランドのリスト
          configuration.card_configuration.allowed_countries_by_iparray[string]IPアドレスが課金を許可されていない国のリスト
          configuration.card_configuration.foreign_cards_allowedboolean外国のカードを許可するかどうか。 外国のカードとは、その国がストアの国と同じではないカードを指す。
          configuration.card_configuration.fail_on_new_emailboolean以前に特定のメールアドレスで使用されたカードを許可するかどうか。 trueの場合、別のメールアドレスで使用されているカードは拒否される。
          configuration.card_configuration.allow_empty_cvvbooleanカード払いのCVVチェックを有効にするかどうか
          configuration.card_configuration.card_limit.amountnumber定義された期間、カードごとに利用を制限する金額
          configuration.card_configuration.card_limit.currencystring (ISO-4217)amountが定義されている通貨
          configuration.card_configuration.card_limit.durationstring (ISO-8601)string (ISO-8601)
          amountに対する期間
          configuration.qr_scan_configuration.enabledbooleanQRコードが利用可能か
          configuration.qr_scan_configuration.forbidden_qr_scan_gatewaysarray[string]QRコード決済の処理に使用されない決済ゲートウェイのリスト
          configuration.convenience_configuration.enabledbooleanコンビニ決済が利用可能か
          configuration.recurring_token_configuration.recurring_typestring使用可能なリカーリングトークンの種類
          none – 使用できない
          bounded – トランザクショントークンを作成するときにusage_periodパラメーターとして定義された期間に制限される
          configuration.recurring_token_configuration.charge_wait_periodstring (ISO-8601)リカーリングトークンを再利用できる間隔
          configuration.recurring_token_configuration.card_charge_cvv_confirmation.enabledbooleanリカーリングトークンを使用するときに、この店舗にCVV確認が必要かどうか
          configuration.recurring_token_configuration.card_charge_cvv_confirmation.thresholdarray[MoneyAmount]CVV確認せずに課金可能な、店舗のデフォルト通貨での最大金額
          configuration.security_configuration.inspect_suspicious_login_afterstring (ISO-8601)
          疑わしいログイン通知が加盟店に送信されるまでの期
          configuration.security_configuration.refund_percent_limitnumber加盟店が行った合計課金額から返金可能な金額の割合
          configuration.security_configuration.limit_charge_by_card_configuration.quantity_of_chargesnumberduration_windowで指定された期間内に行うことができる課金の数
          configuration.security_configuration.limit_charge_by_card_configuration.duration_windowstring (ISO-8601)課金可能な期間
          configuration.installments_configuration.enabledboolean分割払いが有効かどうか
          configuration.installments_configuration.min_charge_amountnumberデフォルト通貨でのサイクルごとの最小課金額
          configuration.installments_configuration.max_payout_periodstring (ISO-8601)分割払いの最大期間
          configuration.installments_configuration.failed_cycles_to_cancelnumber分割払いが自動的にキャンセルされるまでの失敗した課金数
          configuration.card_brand_percent_fees.visanumberVisaカードの手数料率
          configuration.card_brand_percent_fees.american_expressnumberアメリカン・エキスプレスカードの手数料率
          configuration.card_brand_percent_fees.mastercardnumberMastercardの手数料率
          configuration.card_brand_percent_fees.maestronumberMaestroカードの手数料率
          configuration.card_brand_percent_fees.discovernumberDiscoverカードの手数料率
          configuration.card_brand_percent_fees.jcbnumberJCBカードの手数料率
          configuration.card_brand_percent_fees.diners_clubnumberダイナーズクラブカードの手数料率
          configuration.card_brand_percent_fees.union_paynumberUnionPayカードの手数料率

          MoneyAmount

          フィールド名データ型備考
          amountnumber小数点以下の金額
          currencystring (ISO-4217)ISO-4217形式の通貨

          54.2 加盟店 - リクエスト

          54.2.1 加盟店 - GET

          加盟店オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

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

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/me \
          --header 'Authorization: Bearer {secret}.{jwt}'

          記述例

          curl --request GET \
          --url http://api.univapay.com/me \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "id": "11edf541-548f-ad70-8bc2-d34ca468c664",
              "verification_data_id": "11edf541-54f3-2a58-9afe-b372c6f5fc0a",
              "name": "管理画面ガイド",
              "email": "merchant@test.com",
              "notification_email": "merchant@test.com",
              "verified": true,
              "created_on": "2023-05-18T06:00:45.870218Z",
              "configuration": {
                  "percent_fee": 3.400,
                  "flat_fees": [
                      {
                          "amount": 30,
                          "amount_formatted": 30,
                          "currency": "JPY"
                      }
                  ],
                  "logo_url": null,
                  "country": null,
                  "language": null,
                  "display_time_zone": null,
                  "min_transfer_payout": null,
                  "minimum_charge_amounts": null,
                  "maximum_charge_amounts": null,
                  "transfer_schedule": {
                      "wait_period": "P7D",
                      "period": "monthly",
                      "full_period_required": null,
                      "day_of_week": null,
                      "week_of_month": null,
                      "day_of_month": null,
                      "weekly_closing_day": null,
                      "weekly_payout_day": null
                  },
                  "user_transactions_configuration": {
                      "enabled": true,
                      "notify_customer": true,
                      "notify_on_test": true,
                      "notify_on_recurring_token_creation": true,
                      "notify_on_recurring_token_cvv_failed": true,
                      "notify_on_webhook_failure": true,
                      "notify_on_webhook_disabled": true,
                      "notify_user_on_failed_transactions": true,
                      "notify_customer_on_failed_transactions": true,
                      "notify_user_on_convenience_instructions": null,
                      "notify_on_subscriptions": true,
                      "notify_on_authorizations": true,
                      "notify_on_cvv_authorizations": false,
                      "notify_on_cancels": true,
                      "customer_refer_link_enabled": true,
                      "notify_on_convenience_expiry": true
                  },
                  "recurring_token_configuration": {
                      "recurring_type": "infinite",
                      "charge_wait_period": "PT20S",
                      "card_charge_cvv_confirmation": {
                          "enabled": true,
                          "threshold": [
                              {
                                  "amount": 10000,
                                  "amount_formatted": 10000,
                                  "currency": "JPY"
                              }
                          ]
                      }
                  },
                  "security_configuration": {
                      "card_charge_cooldown": null,
                      "subscription_cooldown": null,
                      "idempotent_card_charge_cooldown": null,
                      "idempotent_subscription_cooldown": null,
                      "restrict_ip_after_failed_charge": {
                          "enabled": true,
                          "count": null,
                          "cooldown": null
                      },
                      "inspect_suspicious_login_after": "P20D",
                      "refund_percent_limit": null,
                      "limit_charge_by_card_configuration": null,
                      "confirmation_required": null,
                      "min_refund_threshold": 5,
                      "limit_refund_by_sales": {
                          "enabled": true,
                          "period": "daily",
                          "rolling_window": false
                      }
                  },
                  "checkout_configuration": {
                      "ec_email": {
                          "enabled": true
                      },
                      "ec_products": {
                          "enabled": true
                      }
                  },
                  "installments_configuration": {
                      "enabled": null,
                      "card_processor": {
                          "revolving": null,
                          "fixed_cycle": null
                      },
                      "supported_payment_types": null,
                      "min_charge_amount": null,
                      "max_payout_period": null,
                      "only_with_processor": true
                  },
                  "subscription_plan_configuration": {
                      "enabled": null,
                      "fixed_cycle": null,
                      "fixed_cycle_amount": null,
                      "supported_payment_types": null,
                      "min_charge_amount": null,
                      "max_payout_period": null
                  },
                  "card_brand_percent_fees": {
                      "visa": 3.300,
                      "american_express": 3.500,
                      "mastercard": 3.300,
                      "maestro": null,
                      "discover": null,
                      "jcb": 3.500,
                      "diners_club": 3.300,
                      "union_pay": null,
                      "private_label": null
                  },
                  "subscription_configuration": {
                      "enabled": null,
                      "failed_charges_to_cancel": null,
                      "suspend_on_cancel": null,
                      "allow_merchant_amount_patch": true,
                      "allow_merchant_due_date_patch": true
                  },
                  "customer_management_configuration": {
                      "enabled": true,
                      "default_roles": null,
                      "default_mode": null
                  },
                  "descriptor_provided_configuration": null,
                  "card_configuration": {
                      "enabled": null,
                      "debit_enabled": true,
                      "prepaid_enabled": true,
                      "debit_authorization_enabled": null,
                      "prepaid_authorization_enabled": null,
                      "forbidden_card_brands": null,
                      "allowed_countries_by_ip": null,
                      "foreign_cards_allowed": true,
                      "fail_on_new_email": null,
                      "card_limit": null,
                      "allow_empty_cvv": false,
                      "only_direct_currency": false,
                      "three_ds_required": null,
                      "three_ds_address_required": null,
                      "allow_direct_token_creation": true
                  },
                  "qr_scan_configuration": {
                      "enabled": true,
                      "forbidden_qr_scan_gateways": null
                  },
                  "convenience_configuration": {
                      "enabled": true,
                      "expiration_time_shift": {
                          "value": "13:00:00+09:00",
                          "enabled": false
                      }
                  },
                  "paidy_configuration": {
                      "enabled": null
                  },
                  "qr_merchant_configuration": {
                      "enabled": true
                  },
                  "online_configuration": {
                      "enabled": false
                  },
                  "bank_transfer_configuration": {
                      "enabled": true,
                      "expiration_time_shift": {
                          "value": "11:00:00+09:00",
                          "enabled": true
                      },
                      "default_extension_period": "PT24H",
                      "charge_request_notification_enabled": true,
                      "charge_request_canceled_notification_enabled": true,
                      "charge_expired_notification_enabled": true,
                      "deposit_received_notification_enabled": true,
                      "deposit_insufficient_notification_enabled": true,
                      "deposit_exceeded_notification_enabled": true,
                      "extension_notification_enabled": true,
                      "remind_notification_enabled": true
                  },
                  "platform_credentials_enabled": false,
                  "tagged_platform_credentials_enabled": false
              },
              "tms_merchant_data": null
          }

          55. 設置 – (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
          (個別の指定が必要な場合)
          記述ルールについては免責事項を参照してください

          コールバック

          ウィジェットのページに記載してある内容と同様です。

          56. 処理と課金の種類

          「処理」の種類

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

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

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

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

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

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

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

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

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

          「課金」の種類

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

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

          57. 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処理によって確認することを推奨します。

          58. 課金 - 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
          }

          59. 冪等なリクエスト

          当社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)へお問い合わせください。

          60. 店舗

          60.1 店舗 - 概要

          店舗は、決済を分類したい場合や取引ごとの設定を分けたい場合などに用いられます。トランザクショントークンは、アプリケーショントークン経由でストアに紐づいています。

          店舗オブジェクト

          フィールドデータ型備考
          idUUID店舗を区別するUUID
          namestring店舗の表示名
          emailstring店舗のメールアドレス
          verifiedboolean店舗が審査済みかどうか
          created_onstring (ISO-8601)店舗が作成された時間(ミリ杪, UNIX時間)
          configuration.percent_feenumberこの店舗でのトランザクションごとの手数料率
          ※実際の精算上の金額が正確に反映されていない場合があります
          configuration.flat_feesnumberこの店舗の固定トランザクション費用
          ※実際の精算上の金額が正確に反映されていない場合があります
          configuration.logo_urlstringストアロゴのURL
          configuration.countrystringこの店舗の拠点となる国
          「外国の」カードと見なされるものに影響する
          configuration.languagestringデフォルトの言語
          configuration.display_time_zonestringデフォルトの表示タイムゾーン
          configuration.min_transfer_payoutstring登録された銀行口座に振り込む前に蓄積された資金の最低額
          configuration.maximum_charge_amountsstringデフォルトの最大課金額
          configuration.user_transactions_configuration.enabledbooleanトランザクションで加盟店にメールを送信するかどうか
          configuration.user_transactions_configuration.notify_customerbooleanトランザクションで消費者にメールを送信するかどうか
          configuration.card_configuration.enabledbooleanカードが利用可能か
          configuration.card_configuration.debit_enabledbooleanデビットカードが利用可能か
          configuration.card_configuration.prepaid_enabledbooleanプリペイドカードが利用可能か
          configuration.card_configuration.forbidden_card_brandsarray[string]この店舗での使用が許可されていないカードブランドのリスト
          configuration.card_configuration.allowed_countries_by_iparray[string]IPアドレスが課金を許可されていない国のリスト
          configuration.card_configuration.foreign_cards_allowedboolean外国のカードを許可するかどうか
          外国のカードとは、その国が店舗の国と同じではないカード
          configuration.card_configuration.fail_on_new_emailboolean以前に特定のメールアドレスで使用されたカードを許可するかどうか
          trueの場合、別のメールアドレスで使用されているカードは拒否される
          configuration.card_configuration.allow_empty_cvvbooleanカード払いのCVVチェックを有効にするかどうか
          configuration.card_configuration.card_limit.amountnumber定義された期間、カードごとに利用を制限する金額
          configuration.card_configuration.card_limit.currencystring (ISO-4217)amountが定義されている通貨
          configuration.card_configuration.card_limit.durationstring (ISO-8601)amountに対する期間
          configuration.qr_scan_configuration.enabledbooleanQRコードが利用可能か
          configuration.qr_scan_configuration.forbidden_qr_scan_gatewaysarray[string]QRコード決済の処理に使用されない決済ゲートウェイのリスト
          configuration.convenience_configuration.enabledbooleanコンビニ決済が利用可能か
          configuration.recurring_token_configuration.recurring_typestring使用可能なリカーリングトークンの種類
          none – 使用できない
          bounded – トランザクショントークンを作成するときにusage_periodパラメーターとして定義された期間に制限される
          configuration.recurring_token_configuration.charge_wait_periodstring (ISO-8601)リカーリングトークンを再利用できる間隔
          configuration.recurring_token_configuration.card_charge_cvv_confirmation.enabledbooleanリカーリングトークンを使用するときに、この店舗にCVV確認が必要かどうか
          configuration.recurring_token_configuration.card_charge_cvv_confirmation.thresholdarray[MoneyAmount]CVV確認せずに課金可能な、店舗のデフォルト通貨での最大金額
          configuration.security_configuration.inspect_suspicious_login_afterstring (ISO-8601)疑わしいログイン通知が加盟店に送信されるまでの期間
          configuration.security_configuration.refund_percent_limitnumber加盟店が行った合計課金額から返金可能な金額の割合
          configuration.security_configuration.limit_charge_by_card_configuration.quantity_of_chargesnumberduration_windowで指定された期間内に行うことができる課金の数
          configuration.security_configuration.limit_charge_by_card_configuration.duration_windowstring (ISO-8601)課金可能な期間
          configuration.installments_configuration.enabledboolean分割払いが有効かどうか
          configuration.installments_configuration.min_charge_amountnumberデフォルト通貨でのサイクルごとの最小課金額
          configuration.installments_configuration.max_payout_periodstring (ISO-8601)分割払いの最大期間
          configuration.installments_configuration.failed_cycles_to_cancelnumber分割払いが自動的にキャンセルされるまでの失敗した課金数
          configuration.card_brand_percent_fees.visanumberVisaカードの手数料率
          configuration.card_brand_percent_fees.american_expressnumberアメリカン・エキスプレスカードの手数料率
          configuration.card_brand_percent_fees.mastercardnumberMastercardの手数料率
          configuration.card_brand_percent_fees.maestronumberMaestroカードの手数料率
          configuration.card_brand_percent_fees.discovernumberDiscoverカードの手数料率
          configuration.card_brand_percent_fees.jcbnumberJCBカードの手数料率
          configuration.card_brand_percent_fees.diners_clubnumberダイナーズクラブカードの手数料率
          configuration.card_brand_percent_fees.union_paynumberUnionPayカードの手数料率

          MoneyAmount

          フィールドデータ型備考
          amountnumber小数点以下の金額
          currencystring (ISO-4217)ISO-4217形式の通貨

          60.2 店舗 - リクエスト

          60.2.1 店舗 - GET

          店舗オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

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

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores/{storeId} \
          --header 'Authorization: Bearer {secret}.{jwt}'

          記述例

          curl --request GET \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0 \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
              "name": "管理画面ガイド_TEST店舗",
              "created_on": "2023-05-18T06:03:53.125782Z",
              "configuration": {
                  "percent_fee": null,
                  "flat_fees": null,
                  "logo_url": null,
                  "country": null,
                  "language": null,
                  "display_time_zone": null,
                  "min_transfer_payout": null,
                  "minimum_charge_amounts": null,
                  "maximum_charge_amounts": null,
                  "user_transactions_configuration": {
                      "enabled": null,
                      "notify_customer": null,
                      "notify_on_test": null,
                      "notify_on_recurring_token_creation": null,
                      "notify_on_recurring_token_cvv_failed": null,
                      "notify_on_webhook_failure": null,
                      "notify_on_webhook_disabled": null,
                      "notify_user_on_failed_transactions": null,
                      "notify_customer_on_failed_transactions": null,
                      "notify_user_on_convenience_instructions": null,
                      "notify_on_subscriptions": null,
                      "notify_on_authorizations": null,
                      "notify_on_cvv_authorizations": null,
                      "notify_on_cancels": null,
                      "customer_refer_link_enabled": null,
                      "notify_on_convenience_expiry": null
                  },
                  "recurring_token_configuration": {
                      "recurring_type": null,
                      "charge_wait_period": null,
                      "card_charge_cvv_confirmation": {
                          "enabled": null,
                          "threshold": null
                      }
                  },
                  "security_configuration": {
                      "card_charge_cooldown": null,
                      "subscription_cooldown": null,
                      "idempotent_card_charge_cooldown": null,
                      "idempotent_subscription_cooldown": null,
                      "restrict_ip_after_failed_charge": {
                          "enabled": null,
                          "count": null,
                          "cooldown": null
                      },
                      "inspect_suspicious_login_after": null,
                      "refund_percent_limit": null,
                      "limit_charge_by_card_configuration": null,
                      "confirmation_required": null,
                      "min_refund_threshold": null,
                      "limit_refund_by_sales": null
                  },
                  "checkout_configuration": {
                      "ec_email": {},
                      "ec_products": {}
                  },
                  "installments_configuration": {
                      "enabled": null,
                      "card_processor": {
                          "revolving": null,
                          "fixed_cycle": null
                      },
                      "supported_payment_types": null,
                      "min_charge_amount": null,
                      "max_payout_period": null,
                      "only_with_processor": true
                  },
                  "subscription_plan_configuration": {
                      "enabled": null,
                      "fixed_cycle": null,
                      "fixed_cycle_amount": null,
                      "supported_payment_types": null,
                      "min_charge_amount": null,
                      "max_payout_period": null
                  },
                  "card_brand_percent_fees": {
                      "visa": null,
                      "american_express": null,
                      "mastercard": null,
                      "maestro": null,
                      "discover": null,
                      "jcb": null,
                      "diners_club": null,
                      "union_pay": null,
                      "private_label": null
                  },
                  "subscription_configuration": {
                      "enabled": null,
                      "failed_charges_to_cancel": null,
                      "suspend_on_cancel": null,
                      "allow_merchant_amount_patch": null,
                      "allow_merchant_due_date_patch": null
                  },
                  "customer_management_configuration": {
                      "enabled": null,
                      "default_roles": null,
                      "default_mode": null
                  },
                  "descriptor_provided_configuration": null,
                  "card_configuration": {
                      "enabled": null,
                      "debit_enabled": null,
                      "prepaid_enabled": null,
                      "debit_authorization_enabled": null,
                      "prepaid_authorization_enabled": null,
                      "forbidden_card_brands": null,
                      "allowed_countries_by_ip": null,
                      "foreign_cards_allowed": null,
                      "fail_on_new_email": null,
                      "card_limit": null,
                      "allow_empty_cvv": false,
                      "only_direct_currency": null,
                      "three_ds_required": null,
                      "three_ds_address_required": null,
                      "allow_direct_token_creation": null
                  },
                  "qr_scan_configuration": {
                      "enabled": null,
                      "forbidden_qr_scan_gateways": null
                  },
                  "convenience_configuration": {
                      "expiration_time_shift": {}
                  },
                  "paidy_configuration": {
                      "enabled": null
                  },
                  "qr_merchant_configuration": {
                      "enabled": null
                  },
                  "online_configuration": {},
                  "bank_transfer_configuration": {
                      "expiration_time_shift": {}
                  },
                  "platform_credentials_enabled": null,
                  "tagged_platform_credentials_enabled": null
              },
              "tms_store_data": null
          }

          60.2.2 店舗 - LIST

          店舗オブジェクトに対するLISTリクエストには以下が必要です。(括弧内は入力箇所)
          パラメータでsearchを用い、店舗IDを指定することで特定の店舗をフィルタリングして表示することも可能です。

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

          リクエスト

          CommandとHeader

          curl --request GET \
          --url https://api.univapay.com/stores \
          --header 'Authorization: Bearer {secret}.{jwt}'

          利用できるパラメータ

          リクエストURLに追加できるクエリパラメータは以下です。

          フィールドデータ型備考
          searchstring店舗名でフィルタリングする

          記述例

          curl --request GET \
          --url http://api.univapay.com/stores \
          --header 'Authorization: Bearer {secret}.{jwt}'

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "items": [
                  {
                      "id": "11eec3c2-c117-9386-809b-3fb44d6462d4",
                      "name": "管理画面ガイド_TEST店舗Ⅳ",
                      "created_on": "2024-02-05T01:06:12.557138Z",
                      "merchant_name": "管理画面ガイド"
                  },
                  {
                      "id": "11ee6d59-0aa7-3562-bbe0-af183c595b00",
                      "name": "管理画面ガイド_TEST店舗Ⅲ",
                      "created_on": "2023-10-18T01:52:49.32173Z",
                      "merchant_name": "管理画面ガイド"
                  },
                  {
                      "id": "11ee4bb9-8282-c9aa-8ac7-3f876b49d88b",
                      "name": "管理画面ガイド_TEST店舗Ⅱ",
                      "created_on": "2023-09-05T06:57:42.566226Z",
                      "merchant_name": "管理画面ガイド"
                  },
                  {
                      "id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                      "name": "管理画面ガイド_TEST店舗",
                      "created_on": "2023-05-18T06:03:53.125782Z",
                      "merchant_name": "管理画面ガイド"
                  }
              ],
              "has_more": false
          }

          60.2.3 カスタマーUUID

          カスタマーUUIDオブジェクト

          フィールドデータ型備考
          customer_idstring当システムが生成した顧客を識別するUUID

          店舗オブジェクトに対するカスタマーUUIDリクエストには以下が必要です。(括弧内は入力箇所)
          加盟店が顧客を識別するIDを利用している際、当システム側で顧客を識別するUUIDを生成することができます。

          • 店舗ID(URLの{id}部分)
          • シークレット(Headerの{secret}部分)
          • アプリトークン(Headerの{jwt}部分)
          curl --request POST \
          --url https://api.univapay.com/stores/{id}/create_customer_id \
          --header 'Authorization: Bearer {secret}.{jwt}'

          利用できるパラメータ

          リクエストURLに追加できるクエリパラメータは以下です。

          フィールドデータ型備考
          customer_idstring加盟店システムで発番する顧客を識別するID

          記述例

          curl --request POST \
          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/create_customer_id \
          --header 'Authorization: Bearer {secret}.{jwt}'
          --data "{"customer_id": "1234abcd"}"

          レスポンス

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

          CodeとHeader

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

          Body

          {
              "customer_id": "03ad9882-a1ca-4064-a905-3682477bec10"
          }

          62. 通貨と為替レート

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

          • JPY 日本円
          • USD 米ドル

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

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

          63. 処理結果の通知と取得

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

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

          したがって、処理結果の判定をウェブフックで行うことは問題ありませんが、本来、処理結果を受信しているべきだが未受信ステータスの注文情報を、加盟店さまのデータベース上で検知した場合には、本サービスの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 に更新されたことを必ず確認してから行ってください。

          64. 課金 - 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
          }

          65. よくある質問(FAQ)

          よくある質問とその回答です。

          65.1 機能別 よくある質問一覧

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

          65.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)までお問い合わせください。

          65.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}のお知らせ」の場合
          課金時:「課金のお知らせ」
          返金時:「返金のお知らせ」

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

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

          65.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時

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

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

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

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

          定期課金

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

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

          分割払い

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

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

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

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

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

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

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

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

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

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

          ※加盟店設定によります

          65.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)までお問い合わせください。

          65.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件/日

          65.1.7 エラーについて

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

          確認者
          場所
          消費者

          ・決済完了画面

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

          加盟店さま

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

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

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

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

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

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

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

          65.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処理によって確認することを推奨します。

          65.1.9 銀行振込について

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

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

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

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

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

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

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

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

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

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

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

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

          65.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)までお問い合わせください。

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

              65.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処理)で処理結果を受け取り、ウェブサイトで次の処理を実行したい場合等に活用できます。

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

              65.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:-(空白)}

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

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

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

              65.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秒以内にレスポンスを返却する実装が必要です。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                65.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」「加盟店名」を記載してください。

                  66. 銀行振込について

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                  「十分な告知」とは

                  告知内容例

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

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

                  68. トランザクショントークン - 概要

                  決済情報と消費者に関する個人情報を取得する為のリソースです。
                  課金(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振込支払先の口座名義
                  銀行振込の場合に利用可能

                  イシュアトークン

                  69. テストについて

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

                  テスト決済方法

                  管理画面

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

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

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

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

                  管理画面>店舗>対象の店舗を選択後、
                  決済フォーム>リンクフォーム設定>アプリトークン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)までお問い合わせください。

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

                      70. 決済設定

                      70.1 決済設定 - 概要

                      リンクフォーム / ウィジェットが表示されると、パラメータで指定されたアプリケーショントークンに関連した店舗の決済設定を取得する為に自動的にAPIにリクエストを行います。
                      決済設定は、リンクフォーム / ウィジェットを動作する為に必要な様々な設定情報の集合です。

                      決済設定オブジェクト

                      フィールドデータ型備考
                      modestringウィジェットに設定されたアプリケーショントークンのモード
                      namestringストア名
                      logo_imagestringストアのロゴ画像のURL
                      recurring_token_privilegestringこのストアのリカーリングトークンの権限。none (なし), bounded (制限付き), infinite (無制限) のいずれか。
                      card_configuration.enabledbooleanカードが利用可能か
                      card_configuration.debit_enabledbooleanデビットカードが利用可能か
                      card_configuration.prepaid_enabledbooleanプリペイドカードが利用可能か
                      card_configuration.forbidden_card_brandsarray[string]このストアでの使用が許可されていないカードブランドのリスト
                      card_configuration.allowed_countries_by_iparray[string]IPアドレスが課金を許可されていない国のリスト
                      card_configuration.foreign_cards_allowedboolean外国のカードを許可するかどうか。
                      外国のカードとは、その国がストアの国と同じではないカードを指す
                      card_configuration.fail_on_new_emailboolean以前に特定のメールアドレスで使用されたカードを許可するかどうか
                      trueの場合、別のメールアドレスで使用されているカードは拒否される
                      card_configuration.allow_empty_cvvbooleanカード払いのCVVチェックを有効にするかどうか
                      card_configuration.card_limit.amountnumber定義された期間、カードごとに利用を制限する金額
                      card_configuration.card_limit.currencystring (ISO-4217)amountが定義されている通貨
                      card_configuration.card_limit.durationstring (ISO-8601)定義された期間、カードごとに利用を制限する金額
                      qr_scan_configuration.enabledbooleanQRコードが支払方法として利用可能かどうか
                      qr_scan_configuration.forbidden_qr_scan_gatewaysarray[string]QRコード決済の処理に使用されない決済ゲートウェイのリスト
                      convenience_configuration.enabledbooleanコンビニがペイメント方法として利用可能かどうか
                      theme.colors.main_backgroundstring (HexColor)入力欄背景。入力フォームが表示されるエリアの背景色。デフォルトは #fafafa
                      theme.colors.secondary_backgroundstring (HexColor)ロゴとタイトルが含まれるエリアの背景色。デフォルトは #ee7a00
                      theme.colors.main_colorstring (HexColor)ヘッダーと下部のボタンの背景色。デフォルトは #fafafa
                      theme.colors.primary_textstring (HexColor)タイトル(デフォルトはストア名)の文字色。デフォルトは #fafafa
                      theme.colors.secondary_textstring (HexColor)(指定がある場合は)ウィジェットのタイトル下部に表示される説明文の文字色。デフォルトは #222222
                      theme.colors.base_textstring (HexColor)上記で指定されない他のテキストの文字色。デフォルトは #000000
                      recurring_card_charge_cvv_confirmation.enabledbooleanリカーリングトークンを使用するときに、このストアにCVV確認が必要かどうか
                      recurring_card_charge_cvv_confirmation.thresholdarray[MoneyAmount]CVV確認せずに課金可能な、ストアのデフォルト通貨での最大金額
                      supported_brandsarray[SupportedBrand]利用可能な決済ブランド

                      MoneyAmount

                      フィールドデータ型備考
                      amountnumber小数点以下の金額
                      currencystring (ISO-4217)ISO-4217形式の通貨

                      SupportedBrand

                      フィールドデータ型備考
                      brandstring対応しているブラント
                      payment_typeにより、次のいずれか
                      card: visa, mastercard, american_express, jcb, diners_club, unionpay, discover, maestro
                      qr_merchantalipay_merchant_qr, alipay_connect_mpm, pay_pay_merchant, we_chat_mpm
                      onlinealipay_online, alipay_plus_online, pay_pay_online, we_chat_online,dbarai_online
                      bank_transferaozora_bank
                      paidypaidy
                      payment_typestring次のいずれか cardqr_merchantonlinebank_transferpaidy
                      support_auth_captureboolean仮売上のキャプチャが許可されているか
                      requires_full_nameboolean名前を必須にしているか
                      support_dynamic_descriptorbooleanダイナミックディスクリプタ―が利用可能か
                      requires_cvvbooleanセキュリティコードが必須か
                      countries_allowedarray[string]許可されている国
                      supported_currenciesarray[string]許可された通貨
                      cvv_authbooleanセキュリティコード認証を行うか
                      dynamic_infoboolean分割払いが利用可能か

                      70.2 決済設定 - リクエスト

                      70.2.1 決済設定 - GET

                      決済設定オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)
                      このリクエストはウィジェットを開いた際に自動的に送られ、店舗の支払いのための設定を確認することができます。
                      リンクフォーム / ウィジェットを開かなくても、アプリトークン / シークレット を指定して下記リクエストを送ることで確認可能です。

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

                      リクエスト

                      CommandとHeader

                      curl --request GET \
                      --url https://api.univapay.com/checkout_info \
                      --header 'Authorization: Bearer {jwt}'

                      記述例

                      curl --request GET \
                      --url https://api.univapay.com/checkout_info \
                      --header 'Authorization: Bearer {jwt}'

                      レスポンス

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

                      CodeとHeader

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

                      Body

                      {
                          "mode": "test",
                          "recurring_token_privilege": "infinite",
                          "name": "管理画面ガイド_TEST店舗",
                          "card_configuration": {
                              "enabled": true,
                              "debit_enabled": true,
                              "prepaid_enabled": true,
                              "debit_authorization_enabled": true,
                              "prepaid_authorization_enabled": true,
                              "only_direct_currency": false,
                              "forbidden_card_brands": null,
                              "allowed_countries_by_ip": null,
                              "foreign_cards_allowed": true,
                              "fail_on_new_email": null,
                              "card_limit": null,
                              "allow_empty_cvv": false,
                              "allow_direct_token_creation": true,
                              "three_ds_required": false,
                              "three_ds_address_required": true
                          },
                          "subscription_configuration": {
                              "enabled": true
                          },
                          "installments_configuration": {
                              "enabled": true,
                              "card_processor": {
                                  "revolving": true,
                                  "fixed_cycle": true
                              },
                              "supported_payment_types": [
                                  "card",
                                  "konbini",
                                  "apple_pay",
                                  "paidy",
                                  "bank_transfer"
                              ],
                              "min_charge_amount": null,
                              "max_payout_period": "P100Y",
                              "only_with_processor": true
                          },
                          "subscription_plan_configuration": {
                              "enabled": true,
                              "fixed_cycle": true,
                              "fixed_cycle_amount": true,
                              "supported_payment_types": [
                                  "card",
                                  "konbini",
                                  "apple_pay",
                                  "paidy",
                                  "bank_transfer"
                              ],
                              "min_charge_amount": null,
                              "max_payout_period": "P100Y"
                          },
                          "checkout_configuration": {
                              "ec_email": {
                                  "enabled": true
                              },
                              "ec_products": {
                                  "enabled": true
                              }
                          },
                          "qr_scan_configuration": {
                              "enabled": true,
                              "forbidden_qr_scan_gateways": null
                          },
                          "convenience_configuration": {
                              "enabled": true,
                              "expiration": "PT720H",
                              "expiration_time_shift": {
                                  "value": "13:00:00+09:00",
                                  "enabled": false
                              }
                          },
                          "paidy_configuration": {
                              "enabled": true
                          },
                          "paidy_public_key": "pk_test_9bta9fm2cbvpcscddhr7qrnkkb",
                          "logo_image": null,
                          "theme": {
                              "colors": {
                                  "main_background": "#FFFFFF",
                                  "secondary_background": "#F5F8FC",
                                  "main_color": "#4C5F85",
                                  "main_text": "#FFFFFF",
                                  "primary_text": "#4C5F85",
                                  "secondary_text": "#4C5F85",
                                  "base_text": "#4C5F85"
                              }
                          },
                          "recurring_card_charge_cvv_confirmation": {
                              "enabled": true,
                              "threshold": [
                                  {
                                      "amount": 10000,
                                      "amount_formatted": 10000,
                                      "currency": "JPY"
                                  }
                              ]
                          },
                          "online_configuration": {
                              "enabled": false
                          },
                          "bank_transfer_configuration": {
                              "enabled": true,
                              "match_amount": "disabled",
                              "expiration": "PT168H",
                              "expiration_time_shift": {
                                  "value": "11:00:00+09:00",
                                  "enabled": true
                              },
                              "virtual_bank_accounts_threshold": 5,
                              "virtual_bank_accounts_fetch_count": 10,
                              "default_extension_period": "PT24H",
                              "maximum_extension_period": "PT720H",
                              "automatic_extension_enabled": false,
                              "charge_request_notification_enabled": true,
                              "charge_request_canceled_notification_enabled": true,
                              "charge_expired_notification_enabled": true,
                              "deposit_received_notification_enabled": true,
                              "deposit_insufficient_notification_enabled": true,
                              "deposit_exceeded_notification_enabled": true,
                              "extension_notification_enabled": true,
                              "remind_notification_period": "PT72H",
                              "remind_notification_enabled": true
                          },
                          "supported_brands": [
                              {
                                  "payment_type": "konbini",
                                  "brand": "sunkus",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "online",
                                  "brand": "alipay_plus_online",
                                  "online_brand": "alipay_plus_online",
                                  "dynamic_info": true,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "konbini",
                                  "brand": "yamazaki_daily_store",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "konbini",
                                  "brand": "family_mart",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "konbini",
                                  "brand": "mini_stop",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "konbini",
                                  "brand": "pay_easy",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "online",
                                  "brand": "alipay_online",
                                  "online_brand": "alipay_online",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "konbini",
                                  "brand": "circle_k",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "card",
                                  "brand": "mastercard",
                                  "card_brand": "mastercard",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": true,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": true,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "konbini",
                                  "brand": "seven_eleven",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "konbini",
                                  "brand": "seico_mart",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "online",
                                  "brand": "d_barai_online",
                                  "online_brand": "d_barai_online",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "konbini",
                                  "brand": "daily_yamazaki",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "konbini",
                                  "brand": "lawson",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "card",
                                  "brand": "jcb",
                                  "card_brand": "jcb",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": true,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": true,
                                  "installment_capable": true
                              },
                              {
                                  "payment_type": "card",
                                  "brand": "visa",
                                  "card_brand": "visa",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": true,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": true,
                                  "installment_capable": true
                              },
                              {
                                  "payment_type": "paidy",
                                  "brand": "paidy",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "card",
                                  "brand": "diners_club",
                                  "card_brand": "diners_club",
                                  "dynamic_info": false,
                                  "support_auth_capture": false,
                                  "requires_full_name": false,
                                  "requires_cvv": true,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": true,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "card",
                                  "brand": "american_express",
                                  "card_brand": "american_express",
                                  "dynamic_info": false,
                                  "support_auth_capture": false,
                                  "requires_full_name": false,
                                  "requires_cvv": true,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": true,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "online",
                                  "brand": "pay_pay_online",
                                  "online_brand": "pay_pay_online",
                                  "dynamic_info": false,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "bank_transfer",
                                  "brand": "aozora_bank",
                                  "dynamic_info": false,
                                  "support_auth_capture": false,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              },
                              {
                                  "payment_type": "online",
                                  "brand": "we_chat_online",
                                  "online_brand": "we_chat_online",
                                  "dynamic_info": true,
                                  "support_auth_capture": true,
                                  "requires_full_name": false,
                                  "requires_cvv": false,
                                  "countries_allowed": null,
                                  "supported_currencies": [
                                      "JPY"
                                  ],
                                  "cvv_auth": false,
                                  "installment_capable": false
                              }
                          ]
                      }

                      71. 銀行振込 - 特徴

                      消費者の支払いフロー

                      銀行振込の申込後、指定口座に振り込むと決済が完了される流れです。
                      当社決済フォームを利用した場合の消費者の支払いフローは、下記の画像付き資料を参照してください。

                      消費者の支払いフロー(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あおぞらネット銀行に送信した時

                      72. 課金 - 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"
                          }
                      }

                      73. 更新履歴

                      更新履歴を年ごとに記載しています。
                      なお2022年以前の履歴は省略しています。

                      73.1 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ジェネレータ(ウィジェット/インラインフォーム/リンクフォーム)に「月末に固定」を指定するトグルスイッチを追加しました

                      73.2 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を送信できるようになりました

                      74. システム実装について

                      実装方法によって、リダイレクト(遷移)先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処理)で処理結果を受け取り、ウェブサイトで次の処理を実行したい場合等に活用できます。

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

                      75. 銀行振込 - 要注意なパラメータ

                      本ページは、銀行振込に対してパラメータを使用する場合に、注意すべき点の補足説明です。

                      事前に読むべきページ

                      このページでは、以下のページが読まれていることを前提に説明します。

                      ウィジェット

                      リンクフォーム

                      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

                      76. キャプチャ - 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

                      77. ウェブフック

                      ここでは、本サービスで提供するシステム通知「ウェブフック」ついて説明します。

                      77.1 ウェブフック - 概要

                      “webhook”オブジェクトのデータ構造

                      レスポンスで返却されるフィールドおよび値の詳細は、以下を参照してください。
                      その他data内のフィールドおよび値は、イベントごとのリソースタイプによって異なります。こちらから確認して下さい。

                      フィールドデータ型備考
                      id半角英数(UUID)ウェブフックを識別するためのUUID
                      merchant_id半角英数(UUID)ウェブフックが帰属する「加盟店」のUUID
                      store_id半角英数(UUID)ウェブフックが帰属する「店舗」のUUID
                      triggers配列(テキスト)ウェブフック送信契機となるイベント
                      イベント名の一覧を参照
                      複数指定可能
                      url半角英数(URLとして有効なもの)ウェブフックの送信先
                      auth_token半角英数ウェブフック実行時にヘッダーに含める認証用の値
                      authorizationというフィールド名を利用
                      active真偽作成時の有効性
                      trueで有効、falseで無効
                      created_onISO-8601
                      YYYY-MM-DDThh:mm:ss
                      ウェブフックの作成日
                      updated_onISO-8601
                      YYYY-MM-DDThh:mm:ss
                      ウェブフックの更新日

                      ウェブフックのサンプル(body)

                      課金成功

                      {
                        "id": "11ef1288-37b0-2f15-a097-d3a0d4243d4c",
                        "event": "charge_finished",
                        "data": {
                          "id": "11ef1288-399b-eb84-a215-038628c5c460",
                          "store_id": "11ecda54-12g0-1c78-bd0f-73aa270d700f",
                          "transaction_token_id": "11ef1118-3766-4fdc-baed-b72c5ac3e0ba",
                          "transaction_token_type": "one_time",
                          "subscription_id": null,
                          "requested_amount": 100,
                          "requested_currency": "JPY",
                          "requested_amount_formatted": 100,
                          "charged_amount": 100,
                          "charged_currency": "JPY",
                          "charged_amount_formatted": 100,
                          "fee_amount": null,
                          "fee_currency": null,
                          "fee_amount_formatted": null,
                          "only_direct_currency": true,
                          "capture_at": null,
                          "descriptor": null,
                          "descriptor_phone_number": null,
                          "status": "successful",
                          "metadata": {},
                          "mode": "test",
                          "created_on": "2024-05-15T06:56:12.852465Z",
                          "redirect": {}
                        },
                        "created_on": "2024-05-15T06:56:13.140163783Z",
                        "webhook_id": "11ee8cf5-2be5-67d8-bc18-7b7c584c5735",
                        "successful": true,
                        "fired_on": "2024-05-15T06:56:13.092717474Z"
                      }

                      課金失敗

                      {
                        "id": "11ef1288-37b0-2f15-a097-d3a0d7843d4c",
                        "event": "charge_finished",
                        "data": {
                          "id": "11ef1288-399b-eb84-a215-038628c5c460",
                          "store_id": "11ecda54-12g0-1c78-bd0f-73aa270d700f",
                          "transaction_token_id": "11ef1118-3766-4fdc-baed-b72c5ac3e0ba",
                          "transaction_token_type": "one_time",
                          "subscription_id": null,
                          "requested_amount": 100,
                          "requested_currency": "JPY",
                          "requested_amount_formatted": 100,
                          "charged_amount": 100,
                          "charged_currency": "JPY",
                          "charged_amount_formatted": 100,
                          "fee_amount": null,
                          "fee_currency": null,
                          "fee_amount_formatted": null,
                          "only_direct_currency": true,
                          "capture_at": null,
                          "descriptor": null,
                          "descriptor_phone_number": null,
                          "status": "failed",
                          "error": {
                            "code": 309,
                            "message": "Test charge failed purposely",
                            "details": "Test charge failed purposely"
                          },
                          "metadata": {},
                          "mode": "test",
                          "created_on": "2024-05-15T06:56:12.852465Z",
                          "redirect": {}
                        },
                        "created_on": "2024-05-15T06:56:13.140163783Z",
                        "webhook_id": "11ee8cf5-2be5-67d8-bc18-7b7c584c5735",
                        "successful": true,
                        "fired_on": "2024-05-15T06:56:13.092717474Z"
                      }

                      77.2 ウェブフック - リクエスト

                      77.2.1 ウェブフック - GET

                      ウェブフックオブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)
                      ウェブフックIDを指定しない場合、クエリパラメータでフィルタリングすることで条件に当てはまるウェブフックの一覧を取得します。
                      店舗を指定したウェブフック情報を取得する場合 merchants/{merchantId} は省略可能です。

                      • 加盟店ID(URLの{merchantId}部分)
                      • 店舗ID(URLの{storeId}部分)
                      • ウェブフックID(URLの{webhookId}部分)
                      • シークレット(Headerの{secret}部分)
                      • アプリトークン(Headerの{jwt}部分)

                      リクエスト

                      CommandとHeader

                      curl --request GET \
                      --url https://api.univapay.com/merchants/{merchantId}/stores/{storeId}/webhooks/{webhookId} \
                      --header 'Authorization: Bearer {secret}.{jwt}'

                      記述例(merchantIdの指定を省略)

                      curl --request GET \
                      --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/webhooks/11ef1809-ad25-f160-9093-4f3cee241eb0 \
                      --header 'Authorization: Bearer {secret}.{jwt}'

                      レスポンス

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

                      CodeとHeader

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

                      Body

                      {
                          "id": "11ef1809-ad25-f160-9093-4f3cee241eb0",
                          "platform_id": "11e7a7eb-0ef8-b0c6-bd54-f7a2646e6c47",
                          "merchant_id": "11edf541-548f-ad70-8bc2-d34ca468c664",
                          "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                          "triggers": [
                              "charge_finished",
                              "refund_finished"
                          ],
                          "url": "https://webhook.URL/",
                          "active": true,
                          "created_on": "2024-05-22T07:05:31.049021Z",
                          "updated_on": "2024-05-22T08:15:49.488255Z"
                      }

                      77.2.2 ウェブフック - UPDATE

                      ウェブフックオブジェクトに対するUPDATEリクエストには以下が必要です。(括弧内は入力箇所)
                      通知失敗などによって停止したウェブフックを再開処理する場合はこのリクエストをご利用ください。
                      店舗を指定したウェブフック情報を取得する場合 merchants/{merchantId} は省略可能です。

                      • 加盟店ID(URLの{merchantId}部分)
                      • 店舗ID(URLの{storeId}部分)
                      • ウェブフックID(URLの{webhookId}部分)
                      • シークレット(Headerの{secret}部分)
                      • アプリトークン(Headerの{jwt}部分)

                      リクエスト

                      CommandとHeader

                      curl --request PATCH \
                      --url https://api.univapay.com/merchants/{merchantId}/stores/{storeId}/webhooks/{wenbhookId} \
                      --header 'Authorization: Bearer {secret}.{jwt}'
                      --header 'Content-type: application/json'

                      利用できるパラメータ

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

                      フィールドデータ型備考
                      activebooleanウェブフックのステータス
                      trueもしくはfalse
                      urlstringウェブフック通知先のURL
                      triggersstringイベントのトリガー
                      詳細はこちら
                      auth_tokenstringAuthorizationヘッダー

                      Bodyの記述例

                      curl --request PATCH \ 
                      --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/webhooks/11ef1809-ad25-f160-9093-4f3cee241eb0 \ 
                      --header 'Authorization: Bearer {secret}.{jwt}' \ 
                      --header 'content-type: application/json' \ 
                      --data '{"active": "false"}'

                      レスポンス

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

                      CodeとHeader

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

                      Body

                      {
                          "id": "11ef1809-ad25-f160-9093-4f3cee241eb0",
                          "platform_id": "11e7a7eb-0ef8-b0c6-bd54-f7a2646e6c47",
                          "merchant_id": "11edf541-548f-ad70-8bc2-d34ca468c664",
                          "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                          "triggers": [
                              "charge_finished",
                              "refund_finished"
                          ],
                          "url": "https://webhook.URL/",
                          "active": false,
                          "created_on": "2024-05-22T07:05:31.049021Z",
                          "updated_on": "2024-06-25T09:41:56.235574Z"
                      }

                      78. 制限機能

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

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

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

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

                      返金制限

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

                      海外カード拒否

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

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

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

                      79. トランザクショントークン - リクエスト

                      79.1 トランザクショントークン - CREATE

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

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

                      【注意】決済手段がクレジットカードの場合

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

                      クレジットカード以外の決済手段の場合は、当社へ連絡不要でトランザクショントークン – CREATE リクエストを行えます。

                      リクエスト

                      CommandとHeader

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

                      利用できるパラメータ

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

                      フィールド
                      赤字は必須
                      は条件付き必須
                      データ型備考
                      payment_typestring card (クレジットカード決済), paidy (Paidy決済), online (オンラインモバイル決済)※, konbini (コンビニ決済), bank_transfer (銀行振込決済)のいずれか
                      online はワンタイムトークンのみ指定可能
                      typestring トークンの種類を参照
                      特定の支払い手段により種類が制限される場合あり
                      繰り返しに設定されていて、アカウントに無限に課金可能なトークンを作成する権限がない場合は、usage_limitパラメーターを指定する必要あり
                      usage_limitstring このトークンがリカーリングトークンの場合に使用できる頻度
                      無限に課金可能なリカーリングトークンを作成する権限がある場合は空白可
                      emailstring メールアドレス
                      ※payment_typeがonlineのみ任意・それ以外は必須
                      ip_addressstring 消費者のデバイスのIPv4アドレス
                      ※we_chat_online(web, http_get)の場合
                      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": "2034",
                          "cvv": "123",
                          "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
                              }
                          }
                      }

                      79.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
                              }
                          }
                      }

                      79.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
                      }

                      79.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
                              }
                          }
                      }

                      79.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

                      80. 銀行振込 - 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"から確認できます。

                      81. 用語集

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

                      あ行

                      用語説明
                      アクワイアラ加盟店を増やすことを目的としたカード会社のこと。
                      国際ブランドである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コードやバーコードを読み取って行う決済方法のこと。

                      82. 課金 - 概要

                      トランザクショントークンを作成して消費者の決済情報を収集した後、決済を完了するために課金(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処理日時

                      83. メールについて

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

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

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

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

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

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

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

                      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:-(空白)}

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

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

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

                      84. エラーコード

                      ここでは、本サービスで発生するエラーについて説明します。

                      84.1 エラーコード - 概要

                      本サービスで発生するエラーは、「APIリクエストエラー」と「ペイメントエラー」に分けられます。

                      APIリクエストエラーは、何らかの理由でAPIの呼び出しが正しく行えなかったことを表します。
                      ペイメントエラーは、API呼び出しが正常に行えたが、カード会社やセンター等、外部のシステムでの処理が失敗した場合に発生します。

                      多くの場合、以下のJSONの形式で詳細なエラー情報が提供されます。

                      項目意味記法代表例
                      statusレスポンスの種別半角英error
                      codeエラーコード半角英
                      アッパースネークケース
                      (UPPER_SNAKE_CASE)
                      表を参照
                      errorsエラー詳細をネスト
                      fieldエラー原因となったパラメータのフィールド名
                      (errorsにネストされたエラー詳細)
                      ローワースネークケース
                      (lower_snake_case)
                      reasonネストされたエラーの詳細
                      (errorsにネストされたエラー詳細)
                      アッパースネークケース
                      (UPPER_SNAKE_CASE)
                      または英文で上限や下限の提示

                      APIリクエストエラー

                      このエラーは APIリクエストが正常に受け付けられなかったことを意味し、HTTP ステータスコードが 4xx もしくは 5xx 系統で返されます。

                      HTTP ステータス内容
                      400 Bad Requestsリクエストの内容に問題があります
                      詳細はボディのエラー情報に記載
                      401 Unauthorized認証ができませんでした
                      Authorization ヘッダが無いか、内容に問題あり
                      403 Forbiddenリクエストを実行する為の権限なし
                      404 Not Found指定されたパス、もしくはリソースIDが存在しない
                      429 Too Many Requestsレート制限の上限に達した
                      500 Internal Server Error本サービスのシステム内部で予期しないエラーが発生
                      この場合、処理の一部は実行されている可能性があります

                      例:HTTPステータスコードのみの場合

                      HTTP/1.1 429 Too Many Requests
                      ...
                      Content-Length: 0

                      例:JSONのエラー情報が返され、エラーコードのみの場合

                      HTTP/1.1 400 Bad Requests
                      ...
                      Content-Type: application/json
                      ...
                      
                      {
                          status: "error",
                          code: "NON_UNIQUE_ACTIVE_TOKEN"
                          errors: []
                      }

                      例:JSONのエラー情報が返され、リクエストパラメータに関して詳細なエラー理由がある場合

                      HTTP/1.1 400 Bad Requests
                      ...
                      Content-Type: application/json
                      ...
                      
                      {
                          status: "error",
                          code: "VALIDATION_ERROR"
                          errors: [{
                              field: "card_number"
                              reason: "INVALID_CARD_NUMBER"
                          }]
                      }

                      例:JSONのエラー情報が返され、より詳細なエラーの理由がある場合

                      HTTP/1.1 400 Bad Requests
                      ...
                      Content-Type: application/json
                      ...
                      
                      {
                          status: "error",
                          code: "CHARGE_AMOUNT_TOO_LOW"
                          errors: [{
                              reason: "Charge amount must exceed 100"
                          }]
                      }

                      APIリクエストエラーのエラーコード

                      JSON形式の詳細なエラー情報が提供される場合、エラーコードは以下のような内容を意味します。

                      HTTPステータスエラーコード内容
                      400ALREADY_CAPTURED対象の課金は既にキャプチャ済みか、オーソリが完了していません。
                      400AUTH_NOT_SUPPORTEDオーソリに対応したゲートウェイが設定されていません。
                      400CANCEL_NOT_ALLOWEDこの支払い方法はキャンセルに対応していません。もしくは対象の課金のステータスはキャンセルできない状態です。 詳細はキャンセルを参照してください。
                      400CANNOT_CHANGE_CANCELED_SUBSCRIPTIONキャンセルされた定期課金は変更することはできません。
                      400CANNOT_CHANGE_TOKENこの状態の定期課金のトランザクショントークンは変更できません。トランザクショントークンの変更可能な条件は定期課金の更新を参照してください。
                      400CANNOT_REFUND_UNSUCCESSFUL_CHARGEsuccessful 以外の状態の課金は返金できません。
                      400CAPTURE_AMOUNT_TOO_LARGEキャプチャの金額がオーソリ時の金額より大きいです。
                      400CARD_BRAND_NOT_SUPPORTED指定されたカードブランドに対応したゲートウェイが設定されていません。
                      400CARD_COUNTRY_NOT_SUPPORTED指定されたカード発行国に対応したゲートウェイが設定されていません。
                      400CARD_PROCESSING_DISABLED支払い方法でカードが無効になっています。
                      400CHARGE_TOO_QUICK制限つきのリカーリングトークンまたは同一カードに対して、30秒以内※に同一金額で複数の課金を作成しようとしました。
                      ※APIからリクエストを行っている加盟店さまは、本エラーの発生時間を変更できます。詳細は冪等なリクエストを参照してください。
                      400CONVENIENCE_PROCESSING_DISABLED支払い方法でコンビニ決済が無効になっています。
                      400CURRENCY_MUST_MATCH_CHARGE返金時の通貨は課金時の通貨と同じである必要があります。
                      400CVV_REQUIREDCVV の提供が必要です。
                      400CVV_AUTHORIZATION_NOT_COMPLETEDCVV(セキュリティーコード)認証に失敗しました。
                      400FILE_INVALID_TYPEアップロードされたファイルの MIME タイプが正しくありません。
                      400FILE_MAX_SIZE_EXCEEDEDアップロードされたファイルのサイズが大きすぎます。
                      400FORBIDDEN_IPリクエスト元のIPアドレスから割り出された国が、設定された許可する国に含まれていません。
                      400INSTALLMENT_MAX_PAYOUT_PERIOD_EXCEEDED分割払いの支払期間が、設定された最大の支払期間を超過しています。
                      400INSTALLMENT_PAYMENT_TYPE_NOT_ALLOWED_FOR_PLAN分割払いの支払い方法として許可されていない支払い方法です。
                      400INSTALLMENT_INVALID_CYCLES_COUNT利用できない分割回数です。
                      400INSTALLMENT_INVALID_PLANサポートされていない分割支払いプランです。
                      400INVALID_PLATFORMプラットフォームの指定が正しくありません。
                      400INVALID_TOKEN_TYPEトランザクショントークンの種類が正しくありません。
                      400INVALID_QR_SCAN_GATEWAYQRコード決済のゲートウェイが設定されていないか有効ではありません。
                      400LAST_NAME_REQUIREDカード名義にスペースで区切られた苗字が必要です。
                      400LIVE_MODE_NOT_ENABLED_WHEN_UNVERIFIED本番モード(live)を使用するにはアカウントの審査の完了が必要です。
                      400NO_DIRECT_CURRENCY_GATEWAY通貨の変換をせずに利用可能なゲートウェイが設定されていません。
                      400NO_GATEWAYS_AVAILABLE利用可能なゲートウェイが見つかりません。
                      400NO_TEST_CARD_IN_LIVE_MODE本番モード(live)でテストカードは使用できません。
                      400NON_SUBSCRIPTION_PAYMENT課金の作成にワンタイムトークンもしくはリカーリングトークンを指定してください。
                      400NOT_ONE_TIME_TOKENワンタムトークン以外はサポートされていません。
                      400NOT_SUBSCRIPTION_TOKEN定期課金トークンもしくはリカーリングトークンを指定してください。
                      400PARTIAL_CAPTURE_NOT_SUPPORTED部分的なキャプチャはサポートされていません。
                      400PAYMENT_EXPIRATION_EXCEEDS_PERIOD支払い期限日時がサイクルを超過しています。
                      400QR_PROCESSING_DISABLED支払い方法でQRコードが無効になっています。
                      400RECURRING_TOKEN_DISABLEDトランザクショントークンが無効になっているか、アカウントにリカーリングトークンを使用する権限がありません。
                      400RECURRING_USAGE_LIMIT_REQUIREDusage_limit パラメータが必要です。
                      400RECURRING_USAGE_REQUIRES_CVVCVV の提供が必要です。
                      400REFUND_EXCEEDS_CHARGE_AMOUNT返金金額が課金金額を超過しています。

                      ※複数の一部返金の合計金額が課金金額を超えた場合
                      ※全額返金成功の課金に再度返金処理をした場合
                      400REFUND_NOT_ALLOWED返金に対応していない支払い方法、もしくは返金が許可されませんでした。
                      400REFUND_EXCEEDS_SALES返金の金額が上限を越えたため返金できません。
                      400REFUND_NOT_WITHIN_BOUNDS返金金額が課金金額を超過しています。

                      ※複数の一部返金の合計金額が課金金額を超えていて、かつ一部返金の1回分の返金金額が課金金額を超えた場合
                      400RESOURCE_LIMIT_REACHEDリソース制限の上限に達しました。
                      400SUBSCRIPTION_ALREADY_ENDED定期課金は既に終了しています。
                      400TOKEN_FOR_WRONG_STOREトランザクショントークンのストアが定期課金のストアと異なります。
                      400TRANSACTION_ALREADY_PROCESSED使用済みのトランザクショントークンは指定できません。
                      400TRANSACTION_TOKEN_EXPIREDトランザクショントークンの有効期限が切れました。
                      400USAGE_LIMIT_NOT_APPLICABLEusage_limit は指定できません。
                      400VALIDATION_ERRORリクエスト内容のパラメータにバリデーションエラーがあります。詳細は errors を参照してください。
                      400CHARGE_AMOUNT_TOO_HIGH課金金額が課金最大額より超過しています。
                      401AUTH_HEADER_MISSINGAuthorization ヘッダが指定されていません。
                      401EXPIRED_LOGIN_TOKENログイントークンの有効期限が切れました。
                      401INVALID_APP_TOKENアプリケーショントークンの指定が正しくありません。
                      401INVALID_CREDENTIALS認証情報が正しくありません。
                      401INVALID_DOMAINリクエストされた Origin ヘッダのドメインは、指定されたアプリケーショントークンのドメインに登録されていません。
                      401INVALID_LOGIN_TOKENログイントークンが無効です。
                      401DIRECT_CARD_TOKEN_CREATION_DISABLEDPCIDSSに準拠していないためカード情報を送信できません。
                      403CARD_LOCKEDこのカードは一定期間内の失敗回数がしきい値を超えた為、一時的にロックされています。
                      30分以内に5回以上失敗で、2時間制限をかけます。
                      403INVALID_PERMISSIONSアプリケーショントークンの種類が正しくないか、アカウントの権限が不足しています。
                      403INSTALLMENT_PROCESSOR_INITIAL_AMOUNTS_NOT_SUPPORTEDこのゲートウェイでは初回金額の指定はサポートされていません。
                      403OUTDATED_APP_TOKENアプリケーショントークンのバージョンが古いです。新しくアプリケーショントークンを作成しなおしてください。
                      403TEST_CARD_CANNOT_BE_BANNEDテストカードは禁止できません。
                      409IDEMPOTENCY_KEY_CONFLICT冪等性が保証されたリクエストの際に、指定された冪等性キーが以前に異なるAPIやメソッドで使用されています。
                      409NON_UNIQUE_ACTIVE_TOKENアクティブなトランザクショントークンが既に存在します。
                      409WEBHOOK_URL_EXISTS指定されたURLは既に登録されています。
                      500COULD_NOT_REFRESH_AUTHログイントークンの更新に失敗しました。サポートへお問い合わせください。
                      500DB_ERROR内部データベースエラー。サポートへお問い合わせください。
                      500FILE_UPLOAD_ERRORファイルのアップロードに失敗しました、サポートへお問い合わせください。
                      500IMPROPER_AUTHオーソリの状態が正しくありません。サポートへお問い合わせください。
                      500TIMEOUT内部処理でタイムアウトが発生しました。サポートへお問い合わせください。
                      500UNABLE_TO_GET_IDEMPOTENT_RESULT冪等性キーに該当するキャッシュは見つかった為、リクエストされた内容は処理しませんでしたが、以前の処理結果のキャッシュの取得に失敗しました。
                      500UNKNOWN_ERROR予期しないエラーです。サポートへお問い合わせください。
                      503SERVICE_UNAVAILABLE_TRY_AGAINサービスが一時的に利用できません。時間を置いて再試行してください。
                      504NO_GATEWAY_AVAILABLE_TO_PROCESS_THE_REQUESTこのリクエストは接続先システムで対応していせん。サポートへお問い合わせください。

                      ペイメントエラー

                      課金(Charge)返金(Refund)などのリソースは、リソースの作成、つまりリクエストの受付に成功した場合でも、実際にゲートウェイでの処理に失敗した場合等にエラーが発生する場合があります。この場合、課金や返金の状態は failed になり、error フィールドに以下のデータが設定されます。

                      • code (number) – 課金が失敗またはエラーになった理由を表すエラーコード
                      • message (string) – 課金が失敗した理由
                      • detail (string) – 課金が失敗した詳細理由

                      エラーコードは、以下の通りです。

                      コード内容
                      301カード番号のエラーです。
                      302不正な有効期限(月)です。
                      303不正な有効期限(年)です。
                      304有効期限切れです。
                      305セキュリティーコードに関するエラーです。
                      306カードが拒否されました(認証審査エラー)
                      失敗理由についてはカード発行会社へお問い合わせください。
                      307不正なカードです。
                      308このカードはカード会社から承認が下りていません。詳細は消費者よりカード会社へお問い合わせください。
                      309一般エラーが発生しました。詳細情報は管理画面で確認できます。
                      310消費者データが不正です(無効なリクエストデータ)。
                      加盟店のリクエストに誤りがある可能性があります。
                      311短期間に同一カードでの課金が多すぎます。しばらく待ってから再試行してください。
                      312この課金はキャンセルできません。
                      313オーソリの期限が切れました(課金のキャプチャ時)。
                      314このカードは盗難されたものとして報告されたか、発行会社によって無効化されました。加盟店は利用者のこのカードを差し押さえてください。
                      315カード発行会社へお問い合わせください。
                      316名義人の姓は必須です。
                      317部分的なキャプチャはサポートされていません。
                      318部分的な返金はサポートされていません。
                      319不正行為の疑いがあります(セキュリティ制限)。
                      320銀行側のシステムでエラーが発生しました。
                      321ダイナミックディスクリプタはサポートされていません。
                      322バーコード/QRコードが無効です。
                      323バーコード/QRコードの有効期限が切れています。
                      324このバーコード/QRコードは既に処理済みです。
                      325このバーコード/QRコードは現在処理中です。
                      326リスクプロファイルが高いため拒否されました。
                      327決済期限(タイムアウトは5分)が切れています。
                      328復帰に失敗しました。手動による介入が必要です。
                      329返金に失敗しました。
                      330残高が不足しています。
                      331メタデータフィールドの値が無効または不足しています。
                      332国境を越えた取引は許可されていません:身分証明書がありません。
                      333国境を越えた取引は許可されていません:電話番号がありません。
                      334国境を越えた取引は許可されていません:承認されていない支払方法です。
                      335国境を越えた取引は許可されていません:名前がありません。
                      336この支払方法の決済制限を超えました。
                      337この加盟店の決済制限を超えました。
                      338決済情報が見つかりません。
                      339決済情報が重複しています。
                      340この消費者のリテールQRアカウントはゲートウェイによって拒否されました。
                      341この加盟店には、このゲートウェイに必要な情報が不足しています。
                      342国境を越えた取引は許可されていません: 承認されていない通貨です。
                      343ゲートウェイでサーバーエラー(接続先システムエラー)が発生したため、支払いを処理できませんでした。しばらく待ってから再試行してください。
                      344選択した支払方法は、ゲートウェイにより一時的に利用できません。
                      345支払いは既にキャンセルされています。
                      346システムが遅延したため、支払い処理に時間がかかりキャンセルされました。しばらく待ってから再試行してください。
                      355指定された支払い区分(分割回数など)が非対応のカードです。
                      コード内容
                      500リクエストを実行したところ、前処理エラーが発生しました。正しい入力が行われたことを確認し、詳細はエラーメッセージを参照してください。
                      501内部エラーが発生しました。サポート担当者にご連絡ください。
                      502リクエストに対してレスポンスがタイムアウトとなりました。お時間おいて再度お手続きお願い致します。

                      税関申告エラー

                      税関申告リソースは、失敗するとエラー情報を返すことがあります。税関申告エラーには、以下の情報が含まれます。

                      • code (number) – エラーコードを照合するために使用できる一意のキー
                      • message (string) – エラーの簡単な説明
                      • detail (string) – より詳細なエラーメッセジがった場合の詳細

                      コードの定義は以下の表のとおりです。

                      コード内容
                      601本サービスでシステムリリースされたエラーが発生しましたが、具体的な情報はdetailをご覧ください。
                      602ペイメントプロセッサーが送信されたリクエストを拒否しました。具体的な情報はdetailをご覧ください。
                      603提出されたお客様の身元確認は、税関当局によって拒否されました。
                      604必要なお客様のID情報が加盟店から提出されていなかった。

                      85. イシュアトークン - 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>

                      86. ウェブフックについて

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

                      • 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秒以内にレスポンスを返却する実装が必要です。

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

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

                      87. ウィジェット - 概要

                      ウィジェットは、消費者がカード情報を入力するためのインターフェイスで、ポップアップウインドウとして表示されるタイプのフォームです。

                      ウィジェットの役割

                      ウィジェットは、以下の役割を果たします。

                      支払い方法の選択

                      消費者に、希望の支払い方法をクリック(またはタップ)で選択させます。

                      この選択画面で表示される選択肢は、ウィジェットのタグまたはコードの記述内容に依存します。なお、支払い方法を単一に指定した場合、この選択画面は省略されます。

                      必須情報の入力

                      選択された「支払い方法」毎に予め設定されている必須情報を、消費者に入力させます。

                      入力欄はウィジェットのタグまたはコードの記述内容によって、追加することも可能です。
                      詳しくはこちら

                      ウィジェットで行われる処理

                      選択された「支払い方法」毎に、各種処理を行います。

                      一部、赤字※印の項目は申込完了後、消費者が支払いを行うのを待機します。
                      誤って「決済完了」とみなさないよう、くれぐれも注意してください。

                      支払い方法処理認証後の処理
                      クレジットカードカード会社に対し、要求された処理(オーソリ/キャプチャ)で認証認証済みのカード情報をトークン化して決済処理

                      以降、以下を<共通処理>と記載:
                      JavaScriptでコールバック
                      ウェブフック
                      APIからの取得が可能に
                      銀行振込その申込専用の振込口座を発行し、メール送信(疎通は確認しない)本サービスが振込完了の通知を受け取り次第、完了判定
                      <共通処理>
                      PaidyPaidyのフォームに遷移し、メールアドレスや電話番号で認証認証時点で完了判定
                      <共通処理>
                      オンラインモバイル各銘柄の挙動詳細はこちら本サービスが通知を受け取り次第、完了判定
                      <共通処理>
                      コンビニ決済支払いたいコンビニを選択し「申込」を行い、メール送信(疎通は確認しない)本サービスが支払完了の通知を受け取り次第、完了判定
                      <共通処理>
                      ※…加盟店さまが誤って「決済完了」とみなした場合の損害や責任は、当社では一切負いません

                      ウィジェット内の表示項目

                      ウィジェット内の表示項目は、設置時のパラメータによって以下を制御可能です。

                      • ヘッダーテキスト
                      • ヘッダー説明文
                      • 支払いボタンのテキスト
                      • QRコードの色(オンラインモバイルでのみ有効)
                      • QRコード内のロゴ
                      • 任意のフィールド(入力欄)追加

                      詳しくはこちら

                      ウィジェットのデザイン

                      管理画面から、ウィジェットのデザインを編集可能です。

                      店舗>一般>全体設定>ブランディング から、PNGまたはJPGで店舗アイコンを編集できます。
                      未編集の場合は標準(デフォルト)の画像が表示されます。

                      店舗>決済フォーム>ウィジェット>テーマ から、タイトル背景とメイン(タイトルバーとボタンに使用)のカラーが編集可能です。

                      消費者の支払いフロー

                      ウィジェットを利用した場合の決済手段ごとの支払いフローは、下記の画像付き資料を参照してください。

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

                      87.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>

                      87.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用
                      • いずれかしか記載のないものは、いずれかのみで利用可能

                      87.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か月)

                      インラインフォームで利用可
                      定期課金の周期÷リトライ回数の間隔
                      (余り切捨)
                      表記ルールについては免責事項を参照してください

                      87.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

                      インラインフォームで利用可
                      全て
                      表記ルールについては免責事項を参照してください

                      88. コンビニ決済 - 特徴

                      消費者の支払いフロー

                      コンビニ決済の申込後、通知メールの情報を確認してコンビニで入金すると、決済が完了する流れです。
                      当社決済フォームを利用した場合の消費者の支払いフローは、下記の画像付き資料を参照してください。

                      消費者の支払いフロー(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}として内容が表示されます。
                      各コンビニエンスストアでの支払い番号などの情報を含んでいて、支払先ごとに内容を編集できます。

                      89. 定期課金 - CREATE

                      定期課金オブジェクトのCREATEリクエストには以下が必要です。(括弧内は入力箇所)
                      パラメータを指定して様々な種類の定期課金が作成可能です。

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

                      リクエスト

                      CommandとHeader

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

                      利用できるパラメータ

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

                      フィールド
                      赤字は必須
                      は条件付き必須
                      データ型備考
                      transaction_token_idstring (UUID) 定期課金有効のトランザクショントークンID
                      amountnumber課金額
                      currencystring (ISO-4217) ISO-4217形式の通貨
                      initial_amountnumber定期的な金額と異なる場合は初回に請求する金額
                      periodstring※cyclical_periodを利用しない場合
                      定期課金が請求される頻度
                      dailyweeklybiweeklymonthlyquarterlysemiannuallyannually のいずれか
                      このフィールドが入力されている場合cyclical_periodは利用不可
                      分割払いの場合はmonthlyを指定
                      cyclical_periodstring (ISO-8601 Duration)※periodを利用しない場合
                      課金を行う詳細な頻度(1日間以上)
                      例:P3D,P2M,P2M等
                      このフィールドが入力されている場合periodは利用不可
                      schedule_settings.start_onstring (ISO-8601)以降のすべての支払いがで開始される日付(年月日形式
                      時間はzone_idで宣言されたタイムゾーンの午前7時※に固定
                      ※毎日の定期課金 および 定期課金開始日が定期課金作成日の1日後な場合に限り午前9時
                      schedule_settings.zone_idstring (IANAタイムゾーン)定期課金が請求されるタイムゾーン
                      例:Asia/Tokyo
                      schedule_settings.preserve_end_of_monthbooleanperiodmonthlyで指定されたstart_onの日付が月末日である場合、以降は月の最終日に料金を請求
                      例:start_on2018-06-30の場合、次の請求はtrueの場合は2018-07-31falseの場合は2018-07-30
                      schedule_settings.termination_modestring定期課金の停止リクエスト
                      immediateon_next_payment のいずれか
                      デフォルト値:immediate
                      immediate:即座に停止または終了
                      on_next_payment:次回課金日の直前に停止または終了
                      installment_plan.plan_typestringinstallment_planを指定した定期課金は全てクレジットカード会社による分割払いになり、
                      revolving:リボ払い
                      fixed_cyclesinstallment_plan.fixed_cycles で指定した回数の分割払い
                      revolvingfixed_cycles のいずれか
                      installment_plan.fixed_cyclesnumberplan_typefixed_cyclesの場合
                      クレジットカード会社での分割払いの回数
                      指定可能な値:3,5,6,10,12,15,18,20,24
                      ※上記以外の回数はエラー
                      first_charge_authorization_onlyboolean初回決済時に行う処理
                      true:オーソリ(仮売上)
                      false:キャプチャ(実売上)
                      デフォルト値:false
                      first_charge_capture_afterstring (ISO-8601 Duration)
                      first_charge_authorization_onlytrueの場合、自動でキャプチャを行う日
                      指定可能な値:1,2,3,4,5,6
                      ※上記以外の回数はエラー
                      例:3日後を指定する場合はfirst_charge_capture_after:"P3D"
                      subscription_plan.plan_typestring回数指定の定期課金を行う場合、fixed_cyclesfixed_cycle_amountのいずれか
                      subscription_plan.fixed_cyclesnumbersubscription_plan.plan_type が fixed_cycles の場合
                      定期課金を行う回数
                      subscription_plan.fixed_cycle_amountnumbersubscription_plan.plan_type が fixed_cycle_amount の場合
                      定期課金の1回当たりの支払い金額
                      schedule_settings.retry_intervalstring (ISO-8601 Duration)定期課金の支払いが失敗したときにリトライを行う間隔
                      ※1日以上かつ定期課金のサイクルよりも短い必要あり
                      例:P5Dで失敗後5日毎にリトライ
                      metadatajson定期課金に紐づけられたメタデータ

                      Bodyの記述例

                      curl --request POST \
                      --url https://api.univapay.com/subscriptions \
                      --header 'Authorization: Bearer {secret}.{jwt}' \
                      --header 'content-type: application/json' \
                      --data '{
                        "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
                        "amount": 1250,
                        "currency": "USD",
                        "period": "daily",
                        "metadata":{
                            "ServiceId": 78435694
                        }
                      }'

                      レスポンス

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

                      CodeとHeader

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

                      Body

                      {
                          "id": "11ef335e-9aa5-c54a-8313-7f9847da313a",
                          "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                          "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
                          "amount": 1250,
                          "currency": "USD",
                          "amount_formatted": 12.50,
                          "initial_amount": null,
                          "initial_amount_formatted": null,
                          "subsequent_cycles_start": null,
                          "schedule_settings": {
                              "start_on": null,
                              "zone_id": "Asia/Tokyo",
                              "preserve_end_of_month": null,
                              "retry_interval": null,
                              "termination_mode": "immediate"
                          },
                          "only_direct_currency": false,
                          "first_charge_capture_after": null,
                          "first_charge_authorization_only": false,
                          "status": "unverified",
                          "metadata": {
                              "ServiceId": 78435694
                          },
                          "mode": "test",
                          "created_on": "2024-06-26T01:51:28.627023Z",
                          "period": "monthly",
                          "next_payment": {
                              "id": "11ef335e-9aad-7470-8314-03ee2f51b9cd",
                              "due_date": "2024-06-26",
                              "zone_id": "Asia/Tokyo",
                              "amount": 1250,
                              "currency": "USD",
                              "amount_formatted": 12.50,
                              "is_paid": false,
                              "is_last_payment": false,
                              "created_on": "2024-06-26T01:51:28.627023Z",
                              "updated_on": "2024-06-26T01:51:28.627023Z",
                              "retry_date": null
                          }
                      }

                      90. 課金 - リクエスト

                      90.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"
                          }
                      }

                      90.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"
                          }
                      }

                      90.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
                      }

                      90.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
                      }

                      90.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"
                          }
                      }

                      90.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

                      90.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>

                      91. 定期課金 - 概要

                      定期課金とは、本サービスにより定期的かつ自動的に課金することを指します。
                      オブジェクト名はsubscriptionです。

                      定期課金の作成(create)リクエストはトランザクショントークンを用いて作成されます。
                      定期課金は、UPDATECANCELのリクエストで、いつでも停止できます。

                      ウェブフックを用いて、定期課金イベントの通知を受け取ることを推奨します。

                      • 支払いが成功した時はSUBSCRIPTION_PAYMENTイベント
                      • 支払いが失敗した時はSUBSCRIPTION_FAILEDイベント
                      • 定期課金がキャンセルされた時はSUBSCRIPTION_CANCELEDイベント

                      で、それぞれ通知します。

                      “subscription” オブジェクトのデータ構造

                      フィールドデータ型備考
                      idstring (UUID)定期課金のユニークID
                      作成時に自動付与
                      store_idstring (UUID)登録された「店舗」のユニークID
                      契約時に自動付与
                      transaction_token_idstring (UUID)事前に作成したトランザクショントークン
                      amountnumber課金額
                      currencystring (ISO-4217)通貨
                      例:日本円はJPY
                      amount_formattedstring現実的に流通する補助通貨がある場合、通貨額での課金額
                      例:currencyUSDで課金額が110の場合は1.1
                      initial_amountnumber初回の課金
                      CREATE時に未指定だとamountを参照
                      initial_amount_formattedstring現実的に流通する補助通貨がある場合、通貨額での課金額
                      例:currencyUSDで課金額が110の場合は1.1
                      schedule_settings.start_onstring (ISO-8601)2回目の課金日
                      指定日のタイムゾーンの07:00に実行
                      CREATE時に指定可能
                      schedule_settings.zone_idstring (IANA Timezone)タイムゾーン
                      例:日本はAsia/Tokyo
                      schedule_settings.preserve_end_of_monthboolean月末固定の指定が、されている(true)か否(false)か
                      schedule_settings.retry_interval半角英数定期課金が失敗したときのリトライ間隔

                      存在し得る値(意味):
                      PxD(x日)
                      PxW(x週間)
                      PxM(xか月)
                      schedule_settings.termination_mode半角英定期課金の停止リクエストを受理したとき、実際に自動課金のステータスをsupended(一時停止)に変更するタイミング

                      指定可能な値(意味):
                      immediate(即時)
                      on_next_payment(次回課金日)
                      status半角英定期課金のステータス
                      unverified(初回課金の待機中)
                      unconfirmed(初回課金に失敗)
                      canceled(永久停止:リクエストで移行し再開不可)
                      unpaid(リトライ待ち)
                      current(継続中)
                      suspended(一時停止:管理画面で「一時停止」ボタンを押下、リトライ回数の超過、リクエストのいずれかで移行)
                      completed(指定分完了:再開可)
                      metadataメタデータ
                      CREATE,UPDATE時はネストで任意のフィールドと値を指定可能
                      mode半角英決済のモード
                      live(本番)またはtest(テスト)
                      created_onISO-8601データの作成日時
                      period半角英指定した定期課金の間隔

                      存在し得る値(意味):
                      daily(毎日)
                      weekly(毎週)
                      biweekly(隔週)
                      monthly(毎月)
                      bimonthly(隔月)
                      quarterly(3ヶ月)
                      semiannually(6ヶ月)
                      annually(毎年)
                      cyclical_periodISO8601 duration存在し得る値(意味):
                      PxD(x日周期)
                      PxW(x週間周期)
                      PxM(xヶ月周期)
                      PxY(x年周期)
                      ※CREATEでPeriod未指定なら必須
                      next_payment.idUUID支払いのID
                      next_payment.due_dateYYYY-MM-DD次回課金日
                      next_payment.zone_idIANA Timezoneタイムゾーン
                      例:日本はAsia/Tokyo
                      next_payment.amount半角数次回課金額
                      next_payment.currencyISO-4217通貨
                      例:日本円はJPY
                      next_payment.amount_formatted半角数
                      (小数点)
                      現実的に流通する補助通貨がある場合、通貨額での課金額
                      例:correncyUSDで課金額が110の場合は1.1
                      next_payment.is_paid真偽決済結果(未実行のためfalse固定)
                      next_payment.is_last_payment真偽最後の支払いかどうか
                      (回数指定時のみtrueが出力され得る)
                      next_payment.created_onISO-8601データの作成日時
                      next_payment.updated_onISO-8601データの更新日時
                      next_payment.retry_dateYYYY-MM-DD次回課金が失敗した場合のリトライ予定日
                      表記ルールについては免責事項を参照してください

                      92. コンビニ決済 - 要注意なパラメータ

                      本ページは、コンビニ決済に対してパラメータを使用する場合に、注意すべき点の補足説明です。

                      事前に読むべきページ

                      このページでは、以下のページが読まれていることを前提として説明します。

                      ウィジェット

                      リンクフォーム

                      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

                      方法3 間隔を指定(コンビニ決済のみ対応)

                      課金作成時に以下記述をしてください。

                      実装方法フィールド値の指定例(3日後の12:34:56までの場合
                      ウィジェット
                      (HTML / JavaScript)
                      data-convenience-store-expiration-period /
                      convenienceStoreExpirationPeriod
                      かつ
                      data-convenience-store-expiration-time-shift /
                      convenienceStoreExpirationTimeShift
                      P3D
                      かつ
                      12:34:56+09:00
                      リンクフォームconvenienceStoreExpirationPeriod
                      かつ
                      convenienceStoreExpirationTimeShift
                      P3D
                      かつ
                      12:34:56+09:00
                      (または12%3A34%3A56%2B09%3A00

                      93. リンクフォーム - 概要

                      このページは「初期設定」が完了していることを前提に作成しています。

                      リンクフォームは、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ファイル)

                      93.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メソッドであるため、値を"(ダブルクォーテーション)で囲む必要はありません。

                      93.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
                      cardInstallmentOptions半角数allowCardInstallments=true の時、ドロップダウンメニューでの選択肢を制御

                      選択可能な値(カンマ区切り):
                      1356101215182024revolving
                      全て
                      表記ルールについては免責事項を参照してください

                      94. 定期課金 - GET

                      定期課金オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

                      • 店舗ID(URLの{storeId}部分)
                      • 定期課金ID(URLの{subscriptionId}部分)
                      • シークレット(Headerの{secret}部分)
                      • アプリトークン(Headerの{jwt}部分)

                      リクエスト

                      CommandとHeader

                      curl --request GET \
                      --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId} \
                      --header 'Authorization: Bearer {secret}.{jwt}'

                      利用できるパラメータ

                      リクエストURLに追加できるクエリパラメータは以下です。

                      フィールドデータ型備考
                      pollingbooleanステータスが pending(初期ステータス)から別のステータスに変更されるまで
                      課金のステータスを内部でポーリングする

                      記述例

                      curl --request GET \
                      --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/subscriptions/11ef335e-9aa5-c54a-8313-7f9847da313a \
                      --header 'Authorization: Bearer {secret}.{jwt}'

                      レスポンス

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

                      CodeとHeader

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

                      Body

                      {
                          "id": "11ef335e-9aa5-c54a-8313-7f9847da313a",
                          "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                          "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
                          "amount": 1250,
                          "currency": "USD",
                          "amount_formatted": 12.50,
                          "initial_amount": null,
                          "initial_amount_formatted": null,
                          "subsequent_cycles_start": null,
                          "schedule_settings": {
                              "start_on": null,
                              "zone_id": "Asia/Tokyo",
                              "preserve_end_of_month": null,
                              "retry_interval": null,
                              "termination_mode": "immediate"
                          },
                          "only_direct_currency": false,
                          "first_charge_capture_after": null,
                          "first_charge_authorization_only": false,
                          "status": "current",
                          "metadata": {
                              "ServiceId": 78435694
                          },
                          "mode": "test",
                          "created_on": "2024-06-26T01:51:28.627023Z",
                          "period": "monthly",
                          "next_payment": {
                              "id": "11ef335e-9ae2-8322-8e79-e7ba4b56234e",
                              "due_date": "2024-07-26",
                              "zone_id": "Asia/Tokyo",
                              "amount": 1250,
                              "currency": "USD",
                              "amount_formatted": 12.50,
                              "is_paid": false,
                              "is_last_payment": false,
                              "created_on": "2024-06-26T01:51:29.025129Z",
                              "updated_on": "2024-06-26T01:51:29.025129Z",
                              "retry_date": null
                          }
                      }

                      95. APIリファレンス

                      ここでは、APIを通じて提供されるリソースを紹介します。

                      95.1 一般

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

                      95.1.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」がリポジトリです。

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

                      95.1.2 認証

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

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

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

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

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

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

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

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

                      アプリトークンの使い方

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

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

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

                      Bearer認証の記述例

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

                      アプリトークンの種類

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

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

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

                      95.1.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件/日

                      95.1.4 レスポンス

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

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

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

                      95.1.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

                      95.1.6 メタデータ

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

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

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

                      有効なメタデータの例

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

                      95.1.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の制限を受けないよう適切なエラー処理を行ったポーリングの仕組みを実装する必要があります。
                        そのため、当社の提供する手段を利用した実装を推奨します。

                      95.1.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)へお問い合わせください。

                      95.1.9 通貨と為替レート

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

                      • JPY 日本円
                      • USD 米ドル

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

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

                      95.2 トランザクショントークン

                      95.2.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振込支払先の口座名義
                      銀行振込の場合に利用可能

                      イシュアトークン

                      95.2.2 トランザクショントークン - リクエスト

                      95.3 課金

                      95.3.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処理日時

                      95.3.2 課金 - リクエスト

                      95.4 定期課金

                      95.4.1 定期課金 - 概要

                      定期課金とは、本サービスにより定期的かつ自動的に課金することを指します。
                      オブジェクト名はsubscriptionです。

                      定期課金の作成(create)リクエストはトランザクショントークンを用いて作成されます。
                      定期課金は、UPDATECANCELのリクエストで、いつでも停止できます。

                      ウェブフックを用いて、定期課金イベントの通知を受け取ることを推奨します。

                      • 支払いが成功した時はSUBSCRIPTION_PAYMENTイベント
                      • 支払いが失敗した時はSUBSCRIPTION_FAILEDイベント
                      • 定期課金がキャンセルされた時はSUBSCRIPTION_CANCELEDイベント

                      で、それぞれ通知します。

                      “subscription” オブジェクトのデータ構造

                      フィールドデータ型備考
                      idstring (UUID)定期課金のユニークID
                      作成時に自動付与
                      store_idstring (UUID)登録された「店舗」のユニークID
                      契約時に自動付与
                      transaction_token_idstring (UUID)事前に作成したトランザクショントークン
                      amountnumber課金額
                      currencystring (ISO-4217)通貨
                      例:日本円はJPY
                      amount_formattedstring現実的に流通する補助通貨がある場合、通貨額での課金額
                      例:currencyUSDで課金額が110の場合は1.1
                      initial_amountnumber初回の課金
                      CREATE時に未指定だとamountを参照
                      initial_amount_formattedstring現実的に流通する補助通貨がある場合、通貨額での課金額
                      例:currencyUSDで課金額が110の場合は1.1
                      schedule_settings.start_onstring (ISO-8601)2回目の課金日
                      指定日のタイムゾーンの07:00に実行
                      CREATE時に指定可能
                      schedule_settings.zone_idstring (IANA Timezone)タイムゾーン
                      例:日本はAsia/Tokyo
                      schedule_settings.preserve_end_of_monthboolean月末固定の指定が、されている(true)か否(false)か
                      schedule_settings.retry_interval半角英数定期課金が失敗したときのリトライ間隔

                      存在し得る値(意味):
                      PxD(x日)
                      PxW(x週間)
                      PxM(xか月)
                      schedule_settings.termination_mode半角英定期課金の停止リクエストを受理したとき、実際に自動課金のステータスをsupended(一時停止)に変更するタイミング

                      指定可能な値(意味):
                      immediate(即時)
                      on_next_payment(次回課金日)
                      status半角英定期課金のステータス
                      unverified(初回課金の待機中)
                      unconfirmed(初回課金に失敗)
                      canceled(永久停止:リクエストで移行し再開不可)
                      unpaid(リトライ待ち)
                      current(継続中)
                      suspended(一時停止:管理画面で「一時停止」ボタンを押下、リトライ回数の超過、リクエストのいずれかで移行)
                      completed(指定分完了:再開可)
                      metadataメタデータ
                      CREATE,UPDATE時はネストで任意のフィールドと値を指定可能
                      mode半角英決済のモード
                      live(本番)またはtest(テスト)
                      created_onISO-8601データの作成日時
                      period半角英指定した定期課金の間隔

                      存在し得る値(意味):
                      daily(毎日)
                      weekly(毎週)
                      biweekly(隔週)
                      monthly(毎月)
                      bimonthly(隔月)
                      quarterly(3ヶ月)
                      semiannually(6ヶ月)
                      annually(毎年)
                      cyclical_periodISO8601 duration存在し得る値(意味):
                      PxD(x日周期)
                      PxW(x週間周期)
                      PxM(xヶ月周期)
                      PxY(x年周期)
                      ※CREATEでPeriod未指定なら必須
                      next_payment.idUUID支払いのID
                      next_payment.due_dateYYYY-MM-DD次回課金日
                      next_payment.zone_idIANA Timezoneタイムゾーン
                      例:日本はAsia/Tokyo
                      next_payment.amount半角数次回課金額
                      next_payment.currencyISO-4217通貨
                      例:日本円はJPY
                      next_payment.amount_formatted半角数
                      (小数点)
                      現実的に流通する補助通貨がある場合、通貨額での課金額
                      例:correncyUSDで課金額が110の場合は1.1
                      next_payment.is_paid真偽決済結果(未実行のためfalse固定)
                      next_payment.is_last_payment真偽最後の支払いかどうか
                      (回数指定時のみtrueが出力され得る)
                      next_payment.created_onISO-8601データの作成日時
                      next_payment.updated_onISO-8601データの更新日時
                      next_payment.retry_dateYYYY-MM-DD次回課金が失敗した場合のリトライ予定日
                      表記ルールについては免責事項を参照してください

                      95.4.2 定期課金 - リクエスト

                      95.5 返金

                      95.5.1 返金 - 概要

                      返金(Refund)は、消費者にお金を返すために使用します。
                      詐欺や誤った注文、重複課金などの対応として返金(Refund)が行われます。
                      返金(Refund)は、課金(Charge)と同じ通貨で行う必要があり、その金額は課金(Charge)と同額かそれ以下となります。
                      合計の返金金額が課金金額以下であれば、一つの課金に対して複数の返金を行うこともできます。

                      返金(Refund)は、非同期処理されます。
                      まず作成時には、pending状態になっており、ステータスを自動的にsuccessfulfailederrorに変更します。
                      ウェブフックREFUND_FINISHEDイベントを登録して返金(Refund)の最終状態を得ることができます。

                      返金(Refund)が行われた時でも、返金対象の課金のトランザクション費用は請求されます。
                      テストデータの情報は、テストカード番号を参照下さい。

                      返金(Refund)オブジェクト

                      フィールド名データ型備考
                      idstring (UUID)返金のユニークID
                      store_idstring (UUID)返金対象の課金が属する店舗のID
                      charge_idstring (UUID)返金(Refund)を行う課金のID
                      statusstring返金のステータス
                      pendingsuccessfulfailederrorのいずれか
                      amountnumber返金の金額
                      currencystring (ISO-4217)返金する金額の通貨
                      amount_formattedstring補助単位があればその小数の値を含む返金のリクエスト金額
                      reasonstring返金の理由
                      fraudduplicatecustomer_requestchargebackのいずれか
                      chargebackは加盟店で設定不可で、後日カード会社から課金が拒否された場合に設定
                      messagestring返金の詳細な理由
                      error.codestring課金が失敗またはエラーになった理由を表すエラーコード
                      error.messagestring課金が失敗した理由
                      error.detailstring課金が失敗した詳細理由
                      metadatajson返金に紐づいている加盟店定義のメタデータ
                      modestringliveまたはtest
                      created_onstring (ISO-8601)返金が作成された日時

                      95.5.2 返金 - リクエスト

                      95.6 キャンセル

                      95.6.1 キャンセル - 概要

                      キャンセルリソースは、awaiting もしくは authorized 状態の課金に対してキャンセルを作成する為に使われ、またその状態を表現します。
                      これは、コンビニ決済で課金を作成した時、もしくはクレジットカード(Apple Pay を含む)決済でオーソリを行った際に利用します。
                      successful 状態の課金については、返金 を参照ください。

                      キャンセルオブジェクト

                      フィールド名データ型備考
                      idstring (UUID)キャンセルのID
                      store_idstring (UUID)キャンセルが行われた店舗のID
                      charge_idstring (UUID)キャンセルが行われた課金のID
                      statusstringキャンセルの状態
                      pendingsuccessfulfailederrorのいずれか
                      error.codestring課金が失敗またはエラーになった理由を表すエラーコード
                      error.messagestring課金が失敗した理由
                      error.detailstring課金が失敗した詳細理由
                      metadatajsonキャンセルに紐づいているメタデータ
                      modestringliveまたはtest
                      created_onstring (ISO-8601)キャンセルが作成された日時

                      95.6.2 キャンセル - リクエスト

                      95.7 トランザクション

                      95.7.1 トランザクション - 概要

                      トランザクション履歴とは、実行済みの課金と返金のことです。
                      貸借のアクティビティにアクセスできるようになっています。

                      課金返金の一覧よりもこの閲覧方式を用いることを推奨します。

                      トランザクションオブジェクト

                      フィールドデータ型備考
                      merchant_idstring (UUID)課金が作成された加盟店のユニークID
                      merchant_namestring加盟店名
                      store_idstring (UUID)課金が作成された店舗のユニークID
                      store_namestring店舗名
                      resource_idstring (UUID)このエントリーが参照しているリソースのユニークID
                      typechargeであれば課金のID、refundであれば返金のID
                      amountnumber課金または返金の金額
                      currencystring (ISO-4217)トランザクションの通貨
                      amount_formattedstring補助単位があればその小数の値を含む課金か返金の金額
                      typestringchargeまたはrefundのいずれか
                      statusstringpendingsuccessfulfailederroredのいずれか
                      payment_typestring決済処理の支払い方法
                      modestringliveまたはtest
                      metadatajson課金に付与されたメタデータ
                      bank_transfer_latest_deposit_datestring (ISO-8601)銀行振込の場合 振込日
                      bank_transfer_payment_statusstring銀行振込の場合 決済のステータス
                      unpaid(未入金), insufficient(不足), exact(丁度), exceeded(超過) のいずれか
                      created_onstring (ISO-8601)トランザクションの日時

                      95.7.2 トランザクション - リクエスト

                      95.8 加盟店

                      95.8.1 加盟店 - 概要

                      加盟店リソースはアカウントの所有者についての情報と、この加盟店で作成される店舗のデフォルト設定を表示します。

                      加盟店オブジェクト

                      フィールド名データ型備考
                      idUUID加盟店を識別するID。一般的に merchantId として使われます。
                      namestring加盟店の名称
                      emailstring加盟店のメールアドレス
                      verifiedboolean加盟店が審査済みかどうか
                      created_onstring (ISO-8601)加盟店の作成日時
                      configuration.percent_feenumberこの店舗でのトランザクションごとの手数料率
                      ※実際の精算上の金額が正確に反映されていない場合があります
                      configuration.flat_feesnumberこの店舗の固定トランザクション費用
                      ※実際の精算上の金額が正確に反映されていない場合があります
                      configuration.logo_urlstringストアロゴのURL
                      configuration.countrystringこの店舗の拠点となる国。 「外国の」カードと見なされるものに影響する
                      configuration.languagestringデフォルトの言語
                      configuration.display_time_zonestringデフォルトの表示タイムゾーン
                      configuration.min_transfer_payoutstring登録された銀行口座への送金前に積み立てられた最低金額
                      configuration.maximum_charge_amountsstringデフォルトの最大課金額
                      configuration.user_transactions_configuration.enabledbooleanトランザクションで加盟店にメールを送信するかどうか
                      configuration.user_transactions_configuration.notify_customerbooleanトランザクションで顧客にメールを送信するかどうか
                      configuration.card_configuration.enabledbooleanカードが利用可能か
                      configuration.card_configuration.debit_enabledbooleanデビットカードが利用可能か
                      configuration.card_configuration.prepaid_enabledbooleanプリペイドカードが利用可能か
                      configuration.card_configuration.forbidden_card_brandsarray[string]このストアでの使用が許可されていないカードブランドのリスト
                      configuration.card_configuration.allowed_countries_by_iparray[string]IPアドレスが課金を許可されていない国のリスト
                      configuration.card_configuration.foreign_cards_allowedboolean外国のカードを許可するかどうか。 外国のカードとは、その国がストアの国と同じではないカードを指す。
                      configuration.card_configuration.fail_on_new_emailboolean以前に特定のメールアドレスで使用されたカードを許可するかどうか。 trueの場合、別のメールアドレスで使用されているカードは拒否される。
                      configuration.card_configuration.allow_empty_cvvbooleanカード払いのCVVチェックを有効にするかどうか
                      configuration.card_configuration.card_limit.amountnumber定義された期間、カードごとに利用を制限する金額
                      configuration.card_configuration.card_limit.currencystring (ISO-4217)amountが定義されている通貨
                      configuration.card_configuration.card_limit.durationstring (ISO-8601)string (ISO-8601)
                      amountに対する期間
                      configuration.qr_scan_configuration.enabledbooleanQRコードが利用可能か
                      configuration.qr_scan_configuration.forbidden_qr_scan_gatewaysarray[string]QRコード決済の処理に使用されない決済ゲートウェイのリスト
                      configuration.convenience_configuration.enabledbooleanコンビニ決済が利用可能か
                      configuration.recurring_token_configuration.recurring_typestring使用可能なリカーリングトークンの種類
                      none – 使用できない
                      bounded – トランザクショントークンを作成するときにusage_periodパラメーターとして定義された期間に制限される
                      configuration.recurring_token_configuration.charge_wait_periodstring (ISO-8601)リカーリングトークンを再利用できる間隔
                      configuration.recurring_token_configuration.card_charge_cvv_confirmation.enabledbooleanリカーリングトークンを使用するときに、この店舗にCVV確認が必要かどうか
                      configuration.recurring_token_configuration.card_charge_cvv_confirmation.thresholdarray[MoneyAmount]CVV確認せずに課金可能な、店舗のデフォルト通貨での最大金額
                      configuration.security_configuration.inspect_suspicious_login_afterstring (ISO-8601)
                      疑わしいログイン通知が加盟店に送信されるまでの期
                      configuration.security_configuration.refund_percent_limitnumber加盟店が行った合計課金額から返金可能な金額の割合
                      configuration.security_configuration.limit_charge_by_card_configuration.quantity_of_chargesnumberduration_windowで指定された期間内に行うことができる課金の数
                      configuration.security_configuration.limit_charge_by_card_configuration.duration_windowstring (ISO-8601)課金可能な期間
                      configuration.installments_configuration.enabledboolean分割払いが有効かどうか
                      configuration.installments_configuration.min_charge_amountnumberデフォルト通貨でのサイクルごとの最小課金額
                      configuration.installments_configuration.max_payout_periodstring (ISO-8601)分割払いの最大期間
                      configuration.installments_configuration.failed_cycles_to_cancelnumber分割払いが自動的にキャンセルされるまでの失敗した課金数
                      configuration.card_brand_percent_fees.visanumberVisaカードの手数料率
                      configuration.card_brand_percent_fees.american_expressnumberアメリカン・エキスプレスカードの手数料率
                      configuration.card_brand_percent_fees.mastercardnumberMastercardの手数料率
                      configuration.card_brand_percent_fees.maestronumberMaestroカードの手数料率
                      configuration.card_brand_percent_fees.discovernumberDiscoverカードの手数料率
                      configuration.card_brand_percent_fees.jcbnumberJCBカードの手数料率
                      configuration.card_brand_percent_fees.diners_clubnumberダイナーズクラブカードの手数料率
                      configuration.card_brand_percent_fees.union_paynumberUnionPayカードの手数料率

                      MoneyAmount

                      フィールド名データ型備考
                      amountnumber小数点以下の金額
                      currencystring (ISO-4217)ISO-4217形式の通貨

                      95.8.2 加盟店 - リクエスト

                      95.9 店舗

                      95.9.1 店舗 - 概要

                      店舗は、決済を分類したい場合や取引ごとの設定を分けたい場合などに用いられます。トランザクショントークンは、アプリケーショントークン経由でストアに紐づいています。

                      店舗オブジェクト

                      フィールドデータ型備考
                      idUUID店舗を区別するUUID
                      namestring店舗の表示名
                      emailstring店舗のメールアドレス
                      verifiedboolean店舗が審査済みかどうか
                      created_onstring (ISO-8601)店舗が作成された時間(ミリ杪, UNIX時間)
                      configuration.percent_feenumberこの店舗でのトランザクションごとの手数料率
                      ※実際の精算上の金額が正確に反映されていない場合があります
                      configuration.flat_feesnumberこの店舗の固定トランザクション費用
                      ※実際の精算上の金額が正確に反映されていない場合があります
                      configuration.logo_urlstringストアロゴのURL
                      configuration.countrystringこの店舗の拠点となる国
                      「外国の」カードと見なされるものに影響する
                      configuration.languagestringデフォルトの言語
                      configuration.display_time_zonestringデフォルトの表示タイムゾーン
                      configuration.min_transfer_payoutstring登録された銀行口座に振り込む前に蓄積された資金の最低額
                      configuration.maximum_charge_amountsstringデフォルトの最大課金額
                      configuration.user_transactions_configuration.enabledbooleanトランザクションで加盟店にメールを送信するかどうか
                      configuration.user_transactions_configuration.notify_customerbooleanトランザクションで消費者にメールを送信するかどうか
                      configuration.card_configuration.enabledbooleanカードが利用可能か
                      configuration.card_configuration.debit_enabledbooleanデビットカードが利用可能か
                      configuration.card_configuration.prepaid_enabledbooleanプリペイドカードが利用可能か
                      configuration.card_configuration.forbidden_card_brandsarray[string]この店舗での使用が許可されていないカードブランドのリスト
                      configuration.card_configuration.allowed_countries_by_iparray[string]IPアドレスが課金を許可されていない国のリスト
                      configuration.card_configuration.foreign_cards_allowedboolean外国のカードを許可するかどうか
                      外国のカードとは、その国が店舗の国と同じではないカード
                      configuration.card_configuration.fail_on_new_emailboolean以前に特定のメールアドレスで使用されたカードを許可するかどうか
                      trueの場合、別のメールアドレスで使用されているカードは拒否される
                      configuration.card_configuration.allow_empty_cvvbooleanカード払いのCVVチェックを有効にするかどうか
                      configuration.card_configuration.card_limit.amountnumber定義された期間、カードごとに利用を制限する金額
                      configuration.card_configuration.card_limit.currencystring (ISO-4217)amountが定義されている通貨
                      configuration.card_configuration.card_limit.durationstring (ISO-8601)amountに対する期間
                      configuration.qr_scan_configuration.enabledbooleanQRコードが利用可能か
                      configuration.qr_scan_configuration.forbidden_qr_scan_gatewaysarray[string]QRコード決済の処理に使用されない決済ゲートウェイのリスト
                      configuration.convenience_configuration.enabledbooleanコンビニ決済が利用可能か
                      configuration.recurring_token_configuration.recurring_typestring使用可能なリカーリングトークンの種類
                      none – 使用できない
                      bounded – トランザクショントークンを作成するときにusage_periodパラメーターとして定義された期間に制限される
                      configuration.recurring_token_configuration.charge_wait_periodstring (ISO-8601)リカーリングトークンを再利用できる間隔
                      configuration.recurring_token_configuration.card_charge_cvv_confirmation.enabledbooleanリカーリングトークンを使用するときに、この店舗にCVV確認が必要かどうか
                      configuration.recurring_token_configuration.card_charge_cvv_confirmation.thresholdarray[MoneyAmount]CVV確認せずに課金可能な、店舗のデフォルト通貨での最大金額
                      configuration.security_configuration.inspect_suspicious_login_afterstring (ISO-8601)疑わしいログイン通知が加盟店に送信されるまでの期間
                      configuration.security_configuration.refund_percent_limitnumber加盟店が行った合計課金額から返金可能な金額の割合
                      configuration.security_configuration.limit_charge_by_card_configuration.quantity_of_chargesnumberduration_windowで指定された期間内に行うことができる課金の数
                      configuration.security_configuration.limit_charge_by_card_configuration.duration_windowstring (ISO-8601)課金可能な期間
                      configuration.installments_configuration.enabledboolean分割払いが有効かどうか
                      configuration.installments_configuration.min_charge_amountnumberデフォルト通貨でのサイクルごとの最小課金額
                      configuration.installments_configuration.max_payout_periodstring (ISO-8601)分割払いの最大期間
                      configuration.installments_configuration.failed_cycles_to_cancelnumber分割払いが自動的にキャンセルされるまでの失敗した課金数
                      configuration.card_brand_percent_fees.visanumberVisaカードの手数料率
                      configuration.card_brand_percent_fees.american_expressnumberアメリカン・エキスプレスカードの手数料率
                      configuration.card_brand_percent_fees.mastercardnumberMastercardの手数料率
                      configuration.card_brand_percent_fees.maestronumberMaestroカードの手数料率
                      configuration.card_brand_percent_fees.discovernumberDiscoverカードの手数料率
                      configuration.card_brand_percent_fees.jcbnumberJCBカードの手数料率
                      configuration.card_brand_percent_fees.diners_clubnumberダイナーズクラブカードの手数料率
                      configuration.card_brand_percent_fees.union_paynumberUnionPayカードの手数料率

                      MoneyAmount

                      フィールドデータ型備考
                      amountnumber小数点以下の金額
                      currencystring (ISO-4217)ISO-4217形式の通貨

                      95.9.2 店舗 - リクエスト

                      95.10 決済設定

                      95.10.1 決済設定 - 概要

                      リンクフォーム / ウィジェットが表示されると、パラメータで指定されたアプリケーショントークンに関連した店舗の決済設定を取得する為に自動的にAPIにリクエストを行います。
                      決済設定は、リンクフォーム / ウィジェットを動作する為に必要な様々な設定情報の集合です。

                      決済設定オブジェクト

                      フィールドデータ型備考
                      modestringウィジェットに設定されたアプリケーショントークンのモード
                      namestringストア名
                      logo_imagestringストアのロゴ画像のURL
                      recurring_token_privilegestringこのストアのリカーリングトークンの権限。none (なし), bounded (制限付き), infinite (無制限) のいずれか。
                      card_configuration.enabledbooleanカードが利用可能か
                      card_configuration.debit_enabledbooleanデビットカードが利用可能か
                      card_configuration.prepaid_enabledbooleanプリペイドカードが利用可能か
                      card_configuration.forbidden_card_brandsarray[string]このストアでの使用が許可されていないカードブランドのリスト
                      card_configuration.allowed_countries_by_iparray[string]IPアドレスが課金を許可されていない国のリスト
                      card_configuration.foreign_cards_allowedboolean外国のカードを許可するかどうか。
                      外国のカードとは、その国がストアの国と同じではないカードを指す
                      card_configuration.fail_on_new_emailboolean以前に特定のメールアドレスで使用されたカードを許可するかどうか
                      trueの場合、別のメールアドレスで使用されているカードは拒否される
                      card_configuration.allow_empty_cvvbooleanカード払いのCVVチェックを有効にするかどうか
                      card_configuration.card_limit.amountnumber定義された期間、カードごとに利用を制限する金額
                      card_configuration.card_limit.currencystring (ISO-4217)amountが定義されている通貨
                      card_configuration.card_limit.durationstring (ISO-8601)定義された期間、カードごとに利用を制限する金額
                      qr_scan_configuration.enabledbooleanQRコードが支払方法として利用可能かどうか
                      qr_scan_configuration.forbidden_qr_scan_gatewaysarray[string]QRコード決済の処理に使用されない決済ゲートウェイのリスト
                      convenience_configuration.enabledbooleanコンビニがペイメント方法として利用可能かどうか
                      theme.colors.main_backgroundstring (HexColor)入力欄背景。入力フォームが表示されるエリアの背景色。デフォルトは #fafafa
                      theme.colors.secondary_backgroundstring (HexColor)ロゴとタイトルが含まれるエリアの背景色。デフォルトは #ee7a00
                      theme.colors.main_colorstring (HexColor)ヘッダーと下部のボタンの背景色。デフォルトは #fafafa
                      theme.colors.primary_textstring (HexColor)タイトル(デフォルトはストア名)の文字色。デフォルトは #fafafa
                      theme.colors.secondary_textstring (HexColor)(指定がある場合は)ウィジェットのタイトル下部に表示される説明文の文字色。デフォルトは #222222
                      theme.colors.base_textstring (HexColor)上記で指定されない他のテキストの文字色。デフォルトは #000000
                      recurring_card_charge_cvv_confirmation.enabledbooleanリカーリングトークンを使用するときに、このストアにCVV確認が必要かどうか
                      recurring_card_charge_cvv_confirmation.thresholdarray[MoneyAmount]CVV確認せずに課金可能な、ストアのデフォルト通貨での最大金額
                      supported_brandsarray[SupportedBrand]利用可能な決済ブランド

                      MoneyAmount

                      フィールドデータ型備考
                      amountnumber小数点以下の金額
                      currencystring (ISO-4217)ISO-4217形式の通貨

                      SupportedBrand

                      フィールドデータ型備考
                      brandstring対応しているブラント
                      payment_typeにより、次のいずれか
                      card: visa, mastercard, american_express, jcb, diners_club, unionpay, discover, maestro
                      qr_merchantalipay_merchant_qr, alipay_connect_mpm, pay_pay_merchant, we_chat_mpm
                      onlinealipay_online, alipay_plus_online, pay_pay_online, we_chat_online,dbarai_online
                      bank_transferaozora_bank
                      paidypaidy
                      payment_typestring次のいずれか cardqr_merchantonlinebank_transferpaidy
                      support_auth_captureboolean仮売上のキャプチャが許可されているか
                      requires_full_nameboolean名前を必須にしているか
                      support_dynamic_descriptorbooleanダイナミックディスクリプタ―が利用可能か
                      requires_cvvbooleanセキュリティコードが必須か
                      countries_allowedarray[string]許可されている国
                      supported_currenciesarray[string]許可された通貨
                      cvv_authbooleanセキュリティコード認証を行うか
                      dynamic_infoboolean分割払いが利用可能か

                      95.10.2 決済設定 - リクエスト

                      95.11 ウェブフック

                      ここでは、本サービスで提供するシステム通知「ウェブフック」ついて説明します。

                      95.11.1 ウェブフック - 概要

                      “webhook”オブジェクトのデータ構造

                      レスポンスで返却されるフィールドおよび値の詳細は、以下を参照してください。
                      その他data内のフィールドおよび値は、イベントごとのリソースタイプによって異なります。こちらから確認して下さい。

                      フィールドデータ型備考
                      id半角英数(UUID)ウェブフックを識別するためのUUID
                      merchant_id半角英数(UUID)ウェブフックが帰属する「加盟店」のUUID
                      store_id半角英数(UUID)ウェブフックが帰属する「店舗」のUUID
                      triggers配列(テキスト)ウェブフック送信契機となるイベント
                      イベント名の一覧を参照
                      複数指定可能
                      url半角英数(URLとして有効なもの)ウェブフックの送信先
                      auth_token半角英数ウェブフック実行時にヘッダーに含める認証用の値
                      authorizationというフィールド名を利用
                      active真偽作成時の有効性
                      trueで有効、falseで無効
                      created_onISO-8601
                      YYYY-MM-DDThh:mm:ss
                      ウェブフックの作成日
                      updated_onISO-8601
                      YYYY-MM-DDThh:mm:ss
                      ウェブフックの更新日

                      ウェブフックのサンプル(body)

                      課金成功

                      {
                        "id": "11ef1288-37b0-2f15-a097-d3a0d4243d4c",
                        "event": "charge_finished",
                        "data": {
                          "id": "11ef1288-399b-eb84-a215-038628c5c460",
                          "store_id": "11ecda54-12g0-1c78-bd0f-73aa270d700f",
                          "transaction_token_id": "11ef1118-3766-4fdc-baed-b72c5ac3e0ba",
                          "transaction_token_type": "one_time",
                          "subscription_id": null,
                          "requested_amount": 100,
                          "requested_currency": "JPY",
                          "requested_amount_formatted": 100,
                          "charged_amount": 100,
                          "charged_currency": "JPY",
                          "charged_amount_formatted": 100,
                          "fee_amount": null,
                          "fee_currency": null,
                          "fee_amount_formatted": null,
                          "only_direct_currency": true,
                          "capture_at": null,
                          "descriptor": null,
                          "descriptor_phone_number": null,
                          "status": "successful",
                          "metadata": {},
                          "mode": "test",
                          "created_on": "2024-05-15T06:56:12.852465Z",
                          "redirect": {}
                        },
                        "created_on": "2024-05-15T06:56:13.140163783Z",
                        "webhook_id": "11ee8cf5-2be5-67d8-bc18-7b7c584c5735",
                        "successful": true,
                        "fired_on": "2024-05-15T06:56:13.092717474Z"
                      }

                      課金失敗

                      {
                        "id": "11ef1288-37b0-2f15-a097-d3a0d7843d4c",
                        "event": "charge_finished",
                        "data": {
                          "id": "11ef1288-399b-eb84-a215-038628c5c460",
                          "store_id": "11ecda54-12g0-1c78-bd0f-73aa270d700f",
                          "transaction_token_id": "11ef1118-3766-4fdc-baed-b72c5ac3e0ba",
                          "transaction_token_type": "one_time",
                          "subscription_id": null,
                          "requested_amount": 100,
                          "requested_currency": "JPY",
                          "requested_amount_formatted": 100,
                          "charged_amount": 100,
                          "charged_currency": "JPY",
                          "charged_amount_formatted": 100,
                          "fee_amount": null,
                          "fee_currency": null,
                          "fee_amount_formatted": null,
                          "only_direct_currency": true,
                          "capture_at": null,
                          "descriptor": null,
                          "descriptor_phone_number": null,
                          "status": "failed",
                          "error": {
                            "code": 309,
                            "message": "Test charge failed purposely",
                            "details": "Test charge failed purposely"
                          },
                          "metadata": {},
                          "mode": "test",
                          "created_on": "2024-05-15T06:56:12.852465Z",
                          "redirect": {}
                        },
                        "created_on": "2024-05-15T06:56:13.140163783Z",
                        "webhook_id": "11ee8cf5-2be5-67d8-bc18-7b7c584c5735",
                        "successful": true,
                        "fired_on": "2024-05-15T06:56:13.092717474Z"
                      }

                      95.11.2 ウェブフック - リクエスト

                      95.12 エラーコード

                      ここでは、本サービスで発生するエラーについて説明します。

                      95.12.1 エラーコード - 概要

                      本サービスで発生するエラーは、「APIリクエストエラー」と「ペイメントエラー」に分けられます。

                      APIリクエストエラーは、何らかの理由でAPIの呼び出しが正しく行えなかったことを表します。
                      ペイメントエラーは、API呼び出しが正常に行えたが、カード会社やセンター等、外部のシステムでの処理が失敗した場合に発生します。

                      多くの場合、以下のJSONの形式で詳細なエラー情報が提供されます。

                      項目意味記法代表例
                      statusレスポンスの種別半角英error
                      codeエラーコード半角英
                      アッパースネークケース
                      (UPPER_SNAKE_CASE)
                      表を参照
                      errorsエラー詳細をネスト
                      fieldエラー原因となったパラメータのフィールド名
                      (errorsにネストされたエラー詳細)
                      ローワースネークケース
                      (lower_snake_case)
                      reasonネストされたエラーの詳細
                      (errorsにネストされたエラー詳細)
                      アッパースネークケース
                      (UPPER_SNAKE_CASE)
                      または英文で上限や下限の提示

                      APIリクエストエラー

                      このエラーは APIリクエストが正常に受け付けられなかったことを意味し、HTTP ステータスコードが 4xx もしくは 5xx 系統で返されます。

                      HTTP ステータス内容
                      400 Bad Requestsリクエストの内容に問題があります
                      詳細はボディのエラー情報に記載
                      401 Unauthorized認証ができませんでした
                      Authorization ヘッダが無いか、内容に問題あり
                      403 Forbiddenリクエストを実行する為の権限なし
                      404 Not Found指定されたパス、もしくはリソースIDが存在しない
                      429 Too Many Requestsレート制限の上限に達した
                      500 Internal Server Error本サービスのシステム内部で予期しないエラーが発生
                      この場合、処理の一部は実行されている可能性があります

                      例:HTTPステータスコードのみの場合

                      HTTP/1.1 429 Too Many Requests
                      ...
                      Content-Length: 0

                      例:JSONのエラー情報が返され、エラーコードのみの場合

                      HTTP/1.1 400 Bad Requests
                      ...
                      Content-Type: application/json
                      ...
                      
                      {
                          status: "error",
                          code: "NON_UNIQUE_ACTIVE_TOKEN"
                          errors: []
                      }

                      例:JSONのエラー情報が返され、リクエストパラメータに関して詳細なエラー理由がある場合

                      HTTP/1.1 400 Bad Requests
                      ...
                      Content-Type: application/json
                      ...
                      
                      {
                          status: "error",
                          code: "VALIDATION_ERROR"
                          errors: [{
                              field: "card_number"
                              reason: "INVALID_CARD_NUMBER"
                          }]
                      }

                      例:JSONのエラー情報が返され、より詳細なエラーの理由がある場合

                      HTTP/1.1 400 Bad Requests
                      ...
                      Content-Type: application/json
                      ...
                      
                      {
                          status: "error",
                          code: "CHARGE_AMOUNT_TOO_LOW"
                          errors: [{
                              reason: "Charge amount must exceed 100"
                          }]
                      }

                      APIリクエストエラーのエラーコード

                      JSON形式の詳細なエラー情報が提供される場合、エラーコードは以下のような内容を意味します。

                      HTTPステータスエラーコード内容
                      400ALREADY_CAPTURED対象の課金は既にキャプチャ済みか、オーソリが完了していません。
                      400AUTH_NOT_SUPPORTEDオーソリに対応したゲートウェイが設定されていません。
                      400CANCEL_NOT_ALLOWEDこの支払い方法はキャンセルに対応していません。もしくは対象の課金のステータスはキャンセルできない状態です。 詳細はキャンセルを参照してください。
                      400CANNOT_CHANGE_CANCELED_SUBSCRIPTIONキャンセルされた定期課金は変更することはできません。
                      400CANNOT_CHANGE_TOKENこの状態の定期課金のトランザクショントークンは変更できません。トランザクショントークンの変更可能な条件は定期課金の更新を参照してください。
                      400CANNOT_REFUND_UNSUCCESSFUL_CHARGEsuccessful 以外の状態の課金は返金できません。
                      400CAPTURE_AMOUNT_TOO_LARGEキャプチャの金額がオーソリ時の金額より大きいです。
                      400CARD_BRAND_NOT_SUPPORTED指定されたカードブランドに対応したゲートウェイが設定されていません。
                      400CARD_COUNTRY_NOT_SUPPORTED指定されたカード発行国に対応したゲートウェイが設定されていません。
                      400CARD_PROCESSING_DISABLED支払い方法でカードが無効になっています。
                      400CHARGE_TOO_QUICK制限つきのリカーリングトークンまたは同一カードに対して、30秒以内※に同一金額で複数の課金を作成しようとしました。
                      ※APIからリクエストを行っている加盟店さまは、本エラーの発生時間を変更できます。詳細は冪等なリクエストを参照してください。
                      400CONVENIENCE_PROCESSING_DISABLED支払い方法でコンビニ決済が無効になっています。
                      400CURRENCY_MUST_MATCH_CHARGE返金時の通貨は課金時の通貨と同じである必要があります。
                      400CVV_REQUIREDCVV の提供が必要です。
                      400CVV_AUTHORIZATION_NOT_COMPLETEDCVV(セキュリティーコード)認証に失敗しました。
                      400FILE_INVALID_TYPEアップロードされたファイルの MIME タイプが正しくありません。
                      400FILE_MAX_SIZE_EXCEEDEDアップロードされたファイルのサイズが大きすぎます。
                      400FORBIDDEN_IPリクエスト元のIPアドレスから割り出された国が、設定された許可する国に含まれていません。
                      400INSTALLMENT_MAX_PAYOUT_PERIOD_EXCEEDED分割払いの支払期間が、設定された最大の支払期間を超過しています。
                      400INSTALLMENT_PAYMENT_TYPE_NOT_ALLOWED_FOR_PLAN分割払いの支払い方法として許可されていない支払い方法です。
                      400INSTALLMENT_INVALID_CYCLES_COUNT利用できない分割回数です。
                      400INSTALLMENT_INVALID_PLANサポートされていない分割支払いプランです。
                      400INVALID_PLATFORMプラットフォームの指定が正しくありません。
                      400INVALID_TOKEN_TYPEトランザクショントークンの種類が正しくありません。
                      400INVALID_QR_SCAN_GATEWAYQRコード決済のゲートウェイが設定されていないか有効ではありません。
                      400LAST_NAME_REQUIREDカード名義にスペースで区切られた苗字が必要です。
                      400LIVE_MODE_NOT_ENABLED_WHEN_UNVERIFIED本番モード(live)を使用するにはアカウントの審査の完了が必要です。
                      400NO_DIRECT_CURRENCY_GATEWAY通貨の変換をせずに利用可能なゲートウェイが設定されていません。
                      400NO_GATEWAYS_AVAILABLE利用可能なゲートウェイが見つかりません。
                      400NO_TEST_CARD_IN_LIVE_MODE本番モード(live)でテストカードは使用できません。
                      400NON_SUBSCRIPTION_PAYMENT課金の作成にワンタイムトークンもしくはリカーリングトークンを指定してください。
                      400NOT_ONE_TIME_TOKENワンタムトークン以外はサポートされていません。
                      400NOT_SUBSCRIPTION_TOKEN定期課金トークンもしくはリカーリングトークンを指定してください。
                      400PARTIAL_CAPTURE_NOT_SUPPORTED部分的なキャプチャはサポートされていません。
                      400PAYMENT_EXPIRATION_EXCEEDS_PERIOD支払い期限日時がサイクルを超過しています。
                      400QR_PROCESSING_DISABLED支払い方法でQRコードが無効になっています。
                      400RECURRING_TOKEN_DISABLEDトランザクショントークンが無効になっているか、アカウントにリカーリングトークンを使用する権限がありません。
                      400RECURRING_USAGE_LIMIT_REQUIREDusage_limit パラメータが必要です。
                      400RECURRING_USAGE_REQUIRES_CVVCVV の提供が必要です。
                      400REFUND_EXCEEDS_CHARGE_AMOUNT返金金額が課金金額を超過しています。

                      ※複数の一部返金の合計金額が課金金額を超えた場合
                      ※全額返金成功の課金に再度返金処理をした場合
                      400REFUND_NOT_ALLOWED返金に対応していない支払い方法、もしくは返金が許可されませんでした。
                      400REFUND_EXCEEDS_SALES返金の金額が上限を越えたため返金できません。
                      400REFUND_NOT_WITHIN_BOUNDS返金金額が課金金額を超過しています。

                      ※複数の一部返金の合計金額が課金金額を超えていて、かつ一部返金の1回分の返金金額が課金金額を超えた場合
                      400RESOURCE_LIMIT_REACHEDリソース制限の上限に達しました。
                      400SUBSCRIPTION_ALREADY_ENDED定期課金は既に終了しています。
                      400TOKEN_FOR_WRONG_STOREトランザクショントークンのストアが定期課金のストアと異なります。
                      400TRANSACTION_ALREADY_PROCESSED使用済みのトランザクショントークンは指定できません。
                      400TRANSACTION_TOKEN_EXPIREDトランザクショントークンの有効期限が切れました。
                      400USAGE_LIMIT_NOT_APPLICABLEusage_limit は指定できません。
                      400VALIDATION_ERRORリクエスト内容のパラメータにバリデーションエラーがあります。詳細は errors を参照してください。
                      400CHARGE_AMOUNT_TOO_HIGH課金金額が課金最大額より超過しています。
                      401AUTH_HEADER_MISSINGAuthorization ヘッダが指定されていません。
                      401EXPIRED_LOGIN_TOKENログイントークンの有効期限が切れました。
                      401INVALID_APP_TOKENアプリケーショントークンの指定が正しくありません。
                      401INVALID_CREDENTIALS認証情報が正しくありません。
                      401INVALID_DOMAINリクエストされた Origin ヘッダのドメインは、指定されたアプリケーショントークンのドメインに登録されていません。
                      401INVALID_LOGIN_TOKENログイントークンが無効です。
                      401DIRECT_CARD_TOKEN_CREATION_DISABLEDPCIDSSに準拠していないためカード情報を送信できません。
                      403CARD_LOCKEDこのカードは一定期間内の失敗回数がしきい値を超えた為、一時的にロックされています。
                      30分以内に5回以上失敗で、2時間制限をかけます。
                      403INVALID_PERMISSIONSアプリケーショントークンの種類が正しくないか、アカウントの権限が不足しています。
                      403INSTALLMENT_PROCESSOR_INITIAL_AMOUNTS_NOT_SUPPORTEDこのゲートウェイでは初回金額の指定はサポートされていません。
                      403OUTDATED_APP_TOKENアプリケーショントークンのバージョンが古いです。新しくアプリケーショントークンを作成しなおしてください。
                      403TEST_CARD_CANNOT_BE_BANNEDテストカードは禁止できません。
                      409IDEMPOTENCY_KEY_CONFLICT冪等性が保証されたリクエストの際に、指定された冪等性キーが以前に異なるAPIやメソッドで使用されています。
                      409NON_UNIQUE_ACTIVE_TOKENアクティブなトランザクショントークンが既に存在します。
                      409WEBHOOK_URL_EXISTS指定されたURLは既に登録されています。
                      500COULD_NOT_REFRESH_AUTHログイントークンの更新に失敗しました。サポートへお問い合わせください。
                      500DB_ERROR内部データベースエラー。サポートへお問い合わせください。
                      500FILE_UPLOAD_ERRORファイルのアップロードに失敗しました、サポートへお問い合わせください。
                      500IMPROPER_AUTHオーソリの状態が正しくありません。サポートへお問い合わせください。
                      500TIMEOUT内部処理でタイムアウトが発生しました。サポートへお問い合わせください。
                      500UNABLE_TO_GET_IDEMPOTENT_RESULT冪等性キーに該当するキャッシュは見つかった為、リクエストされた内容は処理しませんでしたが、以前の処理結果のキャッシュの取得に失敗しました。
                      500UNKNOWN_ERROR予期しないエラーです。サポートへお問い合わせください。
                      503SERVICE_UNAVAILABLE_TRY_AGAINサービスが一時的に利用できません。時間を置いて再試行してください。
                      504NO_GATEWAY_AVAILABLE_TO_PROCESS_THE_REQUESTこのリクエストは接続先システムで対応していせん。サポートへお問い合わせください。

                      ペイメントエラー

                      課金(Charge)返金(Refund)などのリソースは、リソースの作成、つまりリクエストの受付に成功した場合でも、実際にゲートウェイでの処理に失敗した場合等にエラーが発生する場合があります。この場合、課金や返金の状態は failed になり、error フィールドに以下のデータが設定されます。

                      • code (number) – 課金が失敗またはエラーになった理由を表すエラーコード
                      • message (string) – 課金が失敗した理由
                      • detail (string) – 課金が失敗した詳細理由

                      エラーコードは、以下の通りです。

                      コード内容
                      301カード番号のエラーです。
                      302不正な有効期限(月)です。
                      303不正な有効期限(年)です。
                      304有効期限切れです。
                      305セキュリティーコードに関するエラーです。
                      306カードが拒否されました(認証審査エラー)
                      失敗理由についてはカード発行会社へお問い合わせください。
                      307不正なカードです。
                      308このカードはカード会社から承認が下りていません。詳細は消費者よりカード会社へお問い合わせください。
                      309一般エラーが発生しました。詳細情報は管理画面で確認できます。
                      310消費者データが不正です(無効なリクエストデータ)。
                      加盟店のリクエストに誤りがある可能性があります。
                      311短期間に同一カードでの課金が多すぎます。しばらく待ってから再試行してください。
                      312この課金はキャンセルできません。
                      313オーソリの期限が切れました(課金のキャプチャ時)。
                      314このカードは盗難されたものとして報告されたか、発行会社によって無効化されました。加盟店は利用者のこのカードを差し押さえてください。
                      315カード発行会社へお問い合わせください。
                      316名義人の姓は必須です。
                      317部分的なキャプチャはサポートされていません。
                      318部分的な返金はサポートされていません。
                      319不正行為の疑いがあります(セキュリティ制限)。
                      320銀行側のシステムでエラーが発生しました。
                      321ダイナミックディスクリプタはサポートされていません。
                      322バーコード/QRコードが無効です。
                      323バーコード/QRコードの有効期限が切れています。
                      324このバーコード/QRコードは既に処理済みです。
                      325このバーコード/QRコードは現在処理中です。
                      326リスクプロファイルが高いため拒否されました。
                      327決済期限(タイムアウトは5分)が切れています。
                      328復帰に失敗しました。手動による介入が必要です。
                      329返金に失敗しました。
                      330残高が不足しています。
                      331メタデータフィールドの値が無効または不足しています。
                      332国境を越えた取引は許可されていません:身分証明書がありません。
                      333国境を越えた取引は許可されていません:電話番号がありません。
                      334国境を越えた取引は許可されていません:承認されていない支払方法です。
                      335国境を越えた取引は許可されていません:名前がありません。
                      336この支払方法の決済制限を超えました。
                      337この加盟店の決済制限を超えました。
                      338決済情報が見つかりません。
                      339決済情報が重複しています。
                      340この消費者のリテールQRアカウントはゲートウェイによって拒否されました。
                      341この加盟店には、このゲートウェイに必要な情報が不足しています。
                      342国境を越えた取引は許可されていません: 承認されていない通貨です。
                      343ゲートウェイでサーバーエラー(接続先システムエラー)が発生したため、支払いを処理できませんでした。しばらく待ってから再試行してください。
                      344選択した支払方法は、ゲートウェイにより一時的に利用できません。
                      345支払いは既にキャンセルされています。
                      346システムが遅延したため、支払い処理に時間がかかりキャンセルされました。しばらく待ってから再試行してください。
                      355指定された支払い区分(分割回数など)が非対応のカードです。
                      コード内容
                      500リクエストを実行したところ、前処理エラーが発生しました。正しい入力が行われたことを確認し、詳細はエラーメッセージを参照してください。
                      501内部エラーが発生しました。サポート担当者にご連絡ください。
                      502リクエストに対してレスポンスがタイムアウトとなりました。お時間おいて再度お手続きお願い致します。

                      税関申告エラー

                      税関申告リソースは、失敗するとエラー情報を返すことがあります。税関申告エラーには、以下の情報が含まれます。

                      • code (number) – エラーコードを照合するために使用できる一意のキー
                      • message (string) – エラーの簡単な説明
                      • detail (string) – より詳細なエラーメッセジがった場合の詳細

                      コードの定義は以下の表のとおりです。

                      コード内容
                      601本サービスでシステムリリースされたエラーが発生しましたが、具体的な情報はdetailをご覧ください。
                      602ペイメントプロセッサーが送信されたリクエストを拒否しました。具体的な情報はdetailをご覧ください。
                      603提出されたお客様の身元確認は、税関当局によって拒否されました。
                      604必要なお客様のID情報が加盟店から提出されていなかった。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                        97. コンビニ決済 - APIへのリクエスト

                        本ガイドは、コンビニ決済における各API処理の補足説明です。

                        コンビニ決済に必要な消費者の情報には、カード番号のような保護が必要な情報は含まれていないため、決済を行うシステムがPCI DSSに準拠していない場合でもAPIへのリクエストでトークンを作成できます。

                        以下では、本サービスのウィジェットやリンクフォームを使用せず、加盟店さま側で支払ページを作成しAPIで処理する場合のフローを説明します。

                        1.トークン作成

                        消費者の情報をトークン化して保存します。
                        詳細は、APIリファレンス「トランザクショントークン – CREATE」を確認してください。

                        リクエストBody例

                        {
                          "payment_type" : "konbini",
                          "type" : "one_time",
                          "email" : "demo@univapay.com",
                          "data" : {
                          "customer_name" : "テスト 太郎",
                          "phone_number" : {
                             "country_code" : "81",
                             "local_number" : "0364413400"
                           }, 
                            "convenience_store" : "family_mart"
                          },
                          "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,
                          "fee_amount": null,
                          "fee_currency": null,
                          "fee_amount_formatted": null,
                          "only_direct_currency": false,
                          "capture_at": null,
                          "descriptor": null,
                          "descriptor_phone_number": null,
                          "status": "awaiting",
                          "error": null,
                          "metadata": {
                            "internal_convenience_payment_number": "20020-123456789012",
                            "internal_convenience_payment_url": "https:/example.com"
                          },
                          "mode": "live",
                          "created_on": "2022-07-20T06:28:44.521327Z"
                        }

                        支払先の情報は、レスポンスの"metadata"の値として反映されます。
                        支払先の情報が反映されるタイミングは、課金作成のリクエスト時ではなく、課金申込が成功して"status": "awaiting"になった時以降です。
                        "metadata"の値とその内容は以下の通りです。

                        "metadata"の値内容
                        internal_convenience_payment_number支払い番号
                        internal_convenience_payment_url支払い票のURL
                        ※支払先がセブンイレブンの場合のみ発行されます

                        Pay-easyの場合は支払いに別途「収納機関番号」が必要です。
                        値は固定されていて、共通で58091です。
                        課金取得時のレスポンスには反映されず、申込完了メールにのみ反映されます。

                        4課金の取得

                        入金の結果を取得します。
                        詳細は、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"から確認できます。

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

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

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

                        項目名 説明
                        届出種別 「加盟店情報変更」を選択してください
                        明細書の明細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」「加盟店名」を記載してください。

                          99. 定期課金 - リクエスト

                          99.1 定期課金 - CREATE

                          定期課金オブジェクトのCREATEリクエストには以下が必要です。(括弧内は入力箇所)
                          パラメータを指定して様々な種類の定期課金が作成可能です。

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

                          リクエスト

                          CommandとHeader

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

                          利用できるパラメータ

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

                          フィールド
                          赤字は必須
                          は条件付き必須
                          データ型備考
                          transaction_token_idstring (UUID) 定期課金有効のトランザクショントークンID
                          amountnumber課金額
                          currencystring (ISO-4217) ISO-4217形式の通貨
                          initial_amountnumber定期的な金額と異なる場合は初回に請求する金額
                          periodstring※cyclical_periodを利用しない場合
                          定期課金が請求される頻度
                          dailyweeklybiweeklymonthlyquarterlysemiannuallyannually のいずれか
                          このフィールドが入力されている場合cyclical_periodは利用不可
                          分割払いの場合はmonthlyを指定
                          cyclical_periodstring (ISO-8601 Duration)※periodを利用しない場合
                          課金を行う詳細な頻度(1日間以上)
                          例:P3D,P2M,P2M等
                          このフィールドが入力されている場合periodは利用不可
                          schedule_settings.start_onstring (ISO-8601)以降のすべての支払いがで開始される日付(年月日形式
                          時間はzone_idで宣言されたタイムゾーンの午前7時※に固定
                          ※毎日の定期課金 および 定期課金開始日が定期課金作成日の1日後な場合に限り午前9時
                          schedule_settings.zone_idstring (IANAタイムゾーン)定期課金が請求されるタイムゾーン
                          例:Asia/Tokyo
                          schedule_settings.preserve_end_of_monthbooleanperiodmonthlyで指定されたstart_onの日付が月末日である場合、以降は月の最終日に料金を請求
                          例:start_on2018-06-30の場合、次の請求はtrueの場合は2018-07-31falseの場合は2018-07-30
                          schedule_settings.termination_modestring定期課金の停止リクエスト
                          immediateon_next_payment のいずれか
                          デフォルト値:immediate
                          immediate:即座に停止または終了
                          on_next_payment:次回課金日の直前に停止または終了
                          installment_plan.plan_typestringinstallment_planを指定した定期課金は全てクレジットカード会社による分割払いになり、
                          revolving:リボ払い
                          fixed_cyclesinstallment_plan.fixed_cycles で指定した回数の分割払い
                          revolvingfixed_cycles のいずれか
                          installment_plan.fixed_cyclesnumberplan_typefixed_cyclesの場合
                          クレジットカード会社での分割払いの回数
                          指定可能な値:3,5,6,10,12,15,18,20,24
                          ※上記以外の回数はエラー
                          first_charge_authorization_onlyboolean初回決済時に行う処理
                          true:オーソリ(仮売上)
                          false:キャプチャ(実売上)
                          デフォルト値:false
                          first_charge_capture_afterstring (ISO-8601 Duration)
                          first_charge_authorization_onlytrueの場合、自動でキャプチャを行う日
                          指定可能な値:1,2,3,4,5,6
                          ※上記以外の回数はエラー
                          例:3日後を指定する場合はfirst_charge_capture_after:"P3D"
                          subscription_plan.plan_typestring回数指定の定期課金を行う場合、fixed_cyclesfixed_cycle_amountのいずれか
                          subscription_plan.fixed_cyclesnumbersubscription_plan.plan_type が fixed_cycles の場合
                          定期課金を行う回数
                          subscription_plan.fixed_cycle_amountnumbersubscription_plan.plan_type が fixed_cycle_amount の場合
                          定期課金の1回当たりの支払い金額
                          schedule_settings.retry_intervalstring (ISO-8601 Duration)定期課金の支払いが失敗したときにリトライを行う間隔
                          ※1日以上かつ定期課金のサイクルよりも短い必要あり
                          例:P5Dで失敗後5日毎にリトライ
                          metadatajson定期課金に紐づけられたメタデータ

                          Bodyの記述例

                          curl --request POST \
                          --url https://api.univapay.com/subscriptions \
                          --header 'Authorization: Bearer {secret}.{jwt}' \
                          --header 'content-type: application/json' \
                          --data '{
                            "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
                            "amount": 1250,
                            "currency": "USD",
                            "period": "daily",
                            "metadata":{
                                "ServiceId": 78435694
                            }
                          }'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef335e-9aa5-c54a-8313-7f9847da313a",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
                              "amount": 1250,
                              "currency": "USD",
                              "amount_formatted": 12.50,
                              "initial_amount": null,
                              "initial_amount_formatted": null,
                              "subsequent_cycles_start": null,
                              "schedule_settings": {
                                  "start_on": null,
                                  "zone_id": "Asia/Tokyo",
                                  "preserve_end_of_month": null,
                                  "retry_interval": null,
                                  "termination_mode": "immediate"
                              },
                              "only_direct_currency": false,
                              "first_charge_capture_after": null,
                              "first_charge_authorization_only": false,
                              "status": "unverified",
                              "metadata": {
                                  "ServiceId": 78435694
                              },
                              "mode": "test",
                              "created_on": "2024-06-26T01:51:28.627023Z",
                              "period": "monthly",
                              "next_payment": {
                                  "id": "11ef335e-9aad-7470-8314-03ee2f51b9cd",
                                  "due_date": "2024-06-26",
                                  "zone_id": "Asia/Tokyo",
                                  "amount": 1250,
                                  "currency": "USD",
                                  "amount_formatted": 12.50,
                                  "is_paid": false,
                                  "is_last_payment": false,
                                  "created_on": "2024-06-26T01:51:28.627023Z",
                                  "updated_on": "2024-06-26T01:51:28.627023Z",
                                  "retry_date": null
                              }
                          }

                          99.2 定期課金 - GET

                          定期課金オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

                          • 店舗ID(URLの{storeId}部分)
                          • 定期課金ID(URLの{subscriptionId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId} \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。

                          フィールドデータ型備考
                          pollingbooleanステータスが pending(初期ステータス)から別のステータスに変更されるまで
                          課金のステータスを内部でポーリングする

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/subscriptions/11ef335e-9aa5-c54a-8313-7f9847da313a \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef335e-9aa5-c54a-8313-7f9847da313a",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
                              "amount": 1250,
                              "currency": "USD",
                              "amount_formatted": 12.50,
                              "initial_amount": null,
                              "initial_amount_formatted": null,
                              "subsequent_cycles_start": null,
                              "schedule_settings": {
                                  "start_on": null,
                                  "zone_id": "Asia/Tokyo",
                                  "preserve_end_of_month": null,
                                  "retry_interval": null,
                                  "termination_mode": "immediate"
                              },
                              "only_direct_currency": false,
                              "first_charge_capture_after": null,
                              "first_charge_authorization_only": false,
                              "status": "current",
                              "metadata": {
                                  "ServiceId": 78435694
                              },
                              "mode": "test",
                              "created_on": "2024-06-26T01:51:28.627023Z",
                              "period": "monthly",
                              "next_payment": {
                                  "id": "11ef335e-9ae2-8322-8e79-e7ba4b56234e",
                                  "due_date": "2024-07-26",
                                  "zone_id": "Asia/Tokyo",
                                  "amount": 1250,
                                  "currency": "USD",
                                  "amount_formatted": 12.50,
                                  "is_paid": false,
                                  "is_last_payment": false,
                                  "created_on": "2024-06-26T01:51:29.025129Z",
                                  "updated_on": "2024-06-26T01:51:29.025129Z",
                                  "retry_date": null
                              }
                          }

                          99.3 定期課金 - LIST

                          定期課金オブジェクトに対するLISTリクエストには以下が必要です。(括弧内は入力箇所)

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

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/subscriptions \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。
                          全てがand条件で検索され、リストが作成されます。

                          フィールドデータ型備考
                          search半角英数メタデータの値で検索
                          status半角英定期課金のステータス
                          unverified, unconfirmed, canceled, unpaid, suspended, current, completed のいずれか
                          mode半角英定期課金の実行モード
                          live,testのいずれか

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/subscriptions \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "items": [
                                  {
                                      "id": "11ef335e-9aa5-c54a-8313-7f9847da313a",
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
                                      "amount": 1250,
                                      "currency": "USD",
                                      "amount_formatted": 12.50,
                                      "initial_amount": null,
                                      "initial_amount_formatted": null,
                                      "subsequent_cycles_start": null,
                                      "schedule_settings": {
                                          "start_on": null,
                                          "zone_id": "Asia/Tokyo",
                                          "preserve_end_of_month": null,
                                          "retry_interval": null,
                                          "termination_mode": "immediate"
                                      },
                                      "only_direct_currency": false,
                                      "first_charge_capture_after": null,
                                      "first_charge_authorization_only": false,
                                      "status": "current",
                                      "metadata": {
                                          "ServiceId": 78435694
                                      },
                                      "mode": "test",
                                      "created_on": "2024-06-26T01:51:28.627023Z",
                                      "period": "monthly",
                                      "merchant_name": "管理画面ガイド",
                                      "store_name": "管理画面ガイド_TEST店舗",
                                      "payment_type": "card",
                                      "next_payment_date": "2024-07-26",
                                      "user_data": {
                                          "type": "charge",
                                          "cardholder_name": "taro yamada",
                                          "email": "test@test.com",
                                          "brand": "visa",
                                          "gateway": null,
                                          "service_provider": null
                                      }
                                  },
                                  {
                                      "id": "11ef3355-6cec-f0dc-a579-d3bb89aab116",
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "transaction_token_id": "11ef3355-6cc6-194e-a5e0-bfd94bdad70d",
                                      "amount": 100,
                                      "currency": "JPY",
                                      "amount_formatted": 100,
                                      "initial_amount": null,
                                      "initial_amount_formatted": null,
                                      "subsequent_cycles_start": null,
                                      "schedule_settings": {
                                          "start_on": null,
                                          "zone_id": "Asia/Tokyo",
                                          "preserve_end_of_month": null,
                                          "retry_interval": null,
                                          "termination_mode": "immediate"
                                      },
                                      "only_direct_currency": false,
                                      "first_charge_capture_after": null,
                                      "first_charge_authorization_only": false,
                                      "status": "current",
                                      "metadata": {},
                                      "mode": "test",
                                      "created_on": "2024-06-26T00:45:46.447678Z",
                                      "period": "monthly",
                                      "merchant_name": "管理画面ガイド",
                                      "store_name": "管理画面ガイド_TEST店舗",
                                      "payment_type": "card",
                                      "next_payment_date": "2024-07-26",
                                      "user_data": {
                                          "type": "charge",
                                          "cardholder_name": "hanako yamada",
                                          "email": "demo@demo.com",
                                          "brand": "master",
                                          "gateway": null,
                                          "service_provider": null
                                      }
                                  },
                          
                          <中略>      
                          
                              ],
                              "has_more": true,
                              "total_hits": 99
                          }

                          99.4 定期課金 - UPDATE

                          定期課金オブジェクトに対するUPDATEリクエストには以下が必要です。(括弧内は入力箇所)

                          • 店舗ID(URLの{storeId}部分)
                          • 定期課金ID(URLの{subscriptionId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request PATCH \
                          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId} \
                          --header 'Authorization: Bearer {secret}.{jwt}' \
                          --header 'content-type: application/json' \

                          利用できるパラメータ

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

                          フィールドデータ型備考
                          transaction_token_idstring (UUID)定期課金で使用するトランザクショントークン
                          クレジットカードの有効期限が切れ、他のカードの切り替える為などに使用
                          定期課金の状態が unconfirmedunpaidcurrentsuspended の場合に変更可能
                          amountnumber定期課金の課金額
                          metadatajson定期課金に紐づいているメタデータ
                          statusstring定期課金の状態
                          suspended:ステータスを一時停止
                          unpaid:一時停止の定期課金を再開
                          schedule_settingsjson定期課金の停止リクエストが送信されたときの処理
                          termination_modeの値によって停止のタイミングを指定
                          immediate:即座に停止または終了
                          on_next_payment:次回課金日の直前に停止または終了
                          例:{"termination_mode": "on_next_payment"}

                          Bodyの記述例

                          curl --request PATCH \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/subscriptions/11ef335e-9aa5-c54a-8313-7f9847da313a \
                          --header 'Authorization: Bearer {secret}.{jwt}' \
                          --header 'content-type: application/json' \
                          --data '{
                            "metadata":{
                                "ServiceId": 7843568
                            },
                            "transaction_token_id": "11ef3362-3700-c54a-9baa-6f7e6527c9d9",
                            "schedule_settings": {"termination_mode": "on_next_payment"}
                          }'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef335e-9aa5-c54a-8313-7f9847da313a",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "transaction_token_id": "11ef3362-3700-c54a-9baa-6f7e6527c9d9",
                              "amount": 1250,
                              "currency": "USD",
                              "amount_formatted": 12.50,
                              "initial_amount": null,
                              "initial_amount_formatted": null,
                              "subsequent_cycles_start": null,
                              "schedule_settings": {
                                  "start_on": null,
                                  "zone_id": "Asia/Tokyo",
                                  "preserve_end_of_month": null,
                                  "retry_interval": null,
                                  "termination_mode": "on_next_payment"
                              },
                              "only_direct_currency": false,
                              "first_charge_capture_after": null,
                              "first_charge_authorization_only": false,
                              "status": "current",
                              "metadata": {
                                  "ServiceId": 7843568
                              },
                              "mode": "test",
                              "created_on": "2024-06-26T01:51:28.627023Z",
                              "period": "monthly",
                              "next_payment": {
                                  "id": "11ef335e-9ae2-8322-8e79-e7ba4b56234e",
                                  "due_date": "2024-07-26",
                                  "zone_id": "Asia/Tokyo",
                                  "amount": 1250,
                                  "currency": "USD",
                                  "amount_formatted": 12.50,
                                  "is_paid": false,
                                  "is_last_payment": false,
                                  "created_on": "2024-06-26T01:51:29.025129Z",
                                  "updated_on": "2024-06-26T01:51:29.025129Z",
                                  "retry_date": null
                              }
                          }

                          99.5 定期課金 - CANCEL

                          定期課金オブジェクトに対するCANCELリクエストには以下が必要です。(括弧内は入力箇所)
                          作成された既存の定期課金を削除し、管理画面のステータスは「永久停止」となり再開不可ですのでご注意ください。

                          • 店舗ID(URLの{storeId}部分)
                          • 定期課金ID(URLの{subscriptionId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request DELETE \
                          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId} \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          Bodyの記述例

                          curl --request DELETE \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/subscriptions/11ef335e-9aa5-c54a-8313-7f9847da313a \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          99.6 定期課金 - 課金 - LIST

                          定期課金オブジェクトに対する課金LISTリクエストには以下が必要です。(括弧内は入力箇所)
                          課金のデータモデルの詳細は課金オブジェクトを参照してください。

                          • 店舗ID(URLの{storeId}部分)
                          • 定期課金ID(URLの{subscriptionId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId}/charges \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。
                          全てがand条件で検索され、リストが作成されます。

                          フィールドデータ型備考
                          last_fournumber使用したクレジットカードの下4桁でフィルタリングする
                          指定する場合は、nameexp_monthexp_yearも含める必要あり
                          namestringカード所有者の名前でフィルタリングする
                          指定する場合は、last_fourexp_monthexp_yearも含める必要あり
                          exp_monthnumber使用したカードの有効期限(月)でフィルタリングする
                          指定する場合は、 last_fournameexp_yearも含める必要あり
                          exp_yearnumber使用したカードの有効期限(年)でフィルタリングする
                          指定する場合は、last_fournameexp_monthも含める必要あり
                          card_numbernumberクレジットカード番号でフィルタリングする
                          fromstring (ISO-8601)この日付以降に作成された課金を表示する
                          tostring (ISO-8601)この日付より前に作成された課金を表示する
                          emailstringメールアドレスでフィルタリングする
                          phonestring電話番号でフィルタリングする
                          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/23f45c5e-18ef-11e7-96ee-d756c0178178/subscriptions/25d0fb2c-18ef-11e7-9dd3-db8fb7b820e7/charges \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                            "items": [
                              {
                                "id": "26f9059e-18ef-11e7-a74f-173cf0f9475a",
                                "store_id": "23f45c5e-18ef-11e7-96ee-d756c0178178",
                                "transaction_token_id": "259e9240-18ef-11e7-94da-97e85c2e269c",
                                "requested_amount": 483200,
                                "requested_currency": "EUR",
                                "requested_amount_formatted": 4832,
                                "charged_amount": 483200,
                                "charged_currency": "EUR",
                                "charged_amount_formatted": 4832,
                                "status": "successful",
                                "error": null,
                                "metadata": {},
                                "mode": "test",
                                "created_on": "2018-07-13T02:55:00.07367Z"
                              },
                              {
                                "id": "270858e6-18ef-11e7-adfa-6ff75ea1c202",
                                "store_id": "23f45c5e-18ef-11e7-96ee-d756c0178178",
                                "transaction_token_id": "259f4a8c-18ef-11e7-b8fe-17e053dc5c54",
                                "requested_amount": 2491,
                                "requested_currency": "JPY",
                                "requested_amount_formatted": 2491,
                                "charged_amount": 2491,
                                "charged_currency": "JPY",
                                "charged_amount_formatted": 2491,
                                "status": "successful",
                                "error": null,
                                "metadata": {},
                                "mode": "test",
                                "created_on": "2018-07-13T02:55:00.07367Z"
                              }
                            ],
                            "has_more": false
                          }

                          99.7 支払い - 概要

                          このリクエストでは、定期課金の支払い情報を確認することができます。
                          支払いが完了しているか、次回課金日がいつかなどを確認したい場合はこちらをご利用下さい。

                          定期課金の支払いオブジェクト

                          フィールドデータ型備考
                          idstring (UUID)支払いのID
                          due_datestring (ISO-8601)支払いが実行される日付
                          時刻はzone_idで指定されたタイムゾーンのAM7:00
                          zone_idstring (IANA Timezone)支払いを実行する時刻が基準とするタイムゾーン
                          amountnumber課金金額
                          currencystring (ISO-4217)課金金額の通貨
                          amount_formattedstring補助単位があれば小数の値を含む課金金額
                          is_paidboolean支払いが完了したかどうか
                          is_last_paymentbooleanこの支払が定期課金の最後の支払いかどうか
                          分割払いの場合のみ適用
                          created_onstring (ISO-8601)この支払いの作成日時

                          99.8 支払い - GET

                          定期課金オブジェクトに対する支払いGETリクエストには以下が必要です。(括弧内は入力箇所)

                          • 店舗ID(URLの{storeId}部分)
                          • 定期課金ID(URLの{subscriptionId}部分)
                          • 課金ID(URLの{paymentId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId}/payments/{paymentId} \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/37ff5664-18c6-11e7-8221-ff4914d76afc/subscriptions/aaadee6a-18e3-11e7-a461-e3b078a7dc52/payments/11e89a0a-8cee-d660-b984-3fcaaed46e7c \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                            "id": "11e89a0a-8cee-d660-b984-3fcaaed46e7c",
                            "due_date": "2018-08-21",
                            "zone_id": "Asia/Tokyo",
                            "amount": 10000,
                            "currency": "JPY",
                            "amount_formatted": 10000,
                            "is_paid": false,
                            "is_last_payment": false,
                            "created_on": "2018-08-07T06:24:33.961256Z"
                          }

                          99.9 支払い - LIST

                          定期課金オブジェクトに対する支払いLISTリクエストには以下が必要です。(括弧内は入力箇所)

                          • 店舗ID(URLの{storeId}部分)
                          • 定期課金ID(URLの{subscriptionId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId}/payments \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/37ff5664-18c6-11e7-8221-ff4914d76afc/subscriptions/aaadee6a-18e3-11e7-a461-e3b078a7dc52/payments \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                            "items": [
                              {
                                "id": "11e89a0a-8cee-d660-b984-3fcaaed46e7c",
                                "due_date": "2018-08-21",
                                "zone_id": "Asia/Tokyo",
                                "amount": 10000,
                                "currency": "JPY",
                                "amount_formatted": 10000,
                                "is_paid": false,
                                "is_last_payment": false,
                                "created_on": "2018-08-07T06:24:33.961256Z",
                                "updated_on": "2018-08-07T06:24:33.961256Z"
                              },
                              {
                                "id": "11e89a0a-8cc5-2662-9460-2b14b1a601ba",
                                "due_date": "2018-08-07",
                                "zone_id": "Asia/Tokyo",
                                "amount": 1000,
                                "currency": "JPY",
                                "amount_formatted": 1000,
                                "is_paid": true,
                                "is_last_payment": false,
                                "created_on": "2018-08-07T06:24:33.646223Z",
                                "updated_on": "2018-08-07T06:24:33.88776Z"
                              }
                            ],
                            "has_more": false
                          }

                          100. インラインフォーム - 概要

                          このページは初期設定が完了していることを前提に作成しています。

                          インラインフォームは、インラインフレームに本サービスの決済フォームのリソースを表示し、消費者に直接カード情報を入力させて処理することを目的としたものです。

                          インラインフォームはクレジットカード決済のみを行うことができ、他の決済は利用できません。

                          インラインフォームの役割

                          インラインフォームは、以下の役割を果たします。

                          必須情報の入力

                          クレジットカード決済の際の必須情報を、消費者に入力させます。

                          入力欄はインラインフォームのタグ記述内容によって、追加することも可能です。
                          詳しくはこちら

                          インラインフォームで行われる処理

                          支払い方法処理認証後の処理
                          クレジットカードカード会社に対し、要求された処理(オーソリ/キャプチャ)で認証認証済みのカード情報をトークン化して決済処理

                          完了後の処理:
                          <form>submit
                          ウェブフック
                          APIからの取得が可能に

                          インラインフォームのデザイン

                          インラインフォームのデザインは、パラメータによって指定可能です。
                          設置先のサイトに、ある程度違和感なく溶け込むデザインを施すことができます。

                          詳しくはこちら

                          100.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
                          (個別の指定が必要な場合)
                          記述ルールについては免責事項を参照してください

                          100.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
                          (個別の指定が必要な場合)
                          記述ルールについては免責事項を参照してください

                          コールバック

                          ウィジェットのページに記載してある内容と同様です。

                          100.3 パラメータ

                          インラインフォームで扱えるパラメータは、ウィジェットで扱えるパラメータの一部です。
                          そのため、個別でページ作成をしていません。

                          以下より「インラインフォームで利用可」となっているもの(クレジットカードで処理できるもの)を選択し、記述してください。

                          101. 定期課金 - LIST

                          定期課金オブジェクトに対するLISTリクエストには以下が必要です。(括弧内は入力箇所)

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

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/subscriptions \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。
                          全てがand条件で検索され、リストが作成されます。

                          フィールドデータ型備考
                          search半角英数メタデータの値で検索
                          status半角英定期課金のステータス
                          unverified, unconfirmed, canceled, unpaid, suspended, current, completed のいずれか
                          mode半角英定期課金の実行モード
                          live,testのいずれか

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/subscriptions \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "items": [
                                  {
                                      "id": "11ef335e-9aa5-c54a-8313-7f9847da313a",
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "transaction_token_id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
                                      "amount": 1250,
                                      "currency": "USD",
                                      "amount_formatted": 12.50,
                                      "initial_amount": null,
                                      "initial_amount_formatted": null,
                                      "subsequent_cycles_start": null,
                                      "schedule_settings": {
                                          "start_on": null,
                                          "zone_id": "Asia/Tokyo",
                                          "preserve_end_of_month": null,
                                          "retry_interval": null,
                                          "termination_mode": "immediate"
                                      },
                                      "only_direct_currency": false,
                                      "first_charge_capture_after": null,
                                      "first_charge_authorization_only": false,
                                      "status": "current",
                                      "metadata": {
                                          "ServiceId": 78435694
                                      },
                                      "mode": "test",
                                      "created_on": "2024-06-26T01:51:28.627023Z",
                                      "period": "monthly",
                                      "merchant_name": "管理画面ガイド",
                                      "store_name": "管理画面ガイド_TEST店舗",
                                      "payment_type": "card",
                                      "next_payment_date": "2024-07-26",
                                      "user_data": {
                                          "type": "charge",
                                          "cardholder_name": "taro yamada",
                                          "email": "test@test.com",
                                          "brand": "visa",
                                          "gateway": null,
                                          "service_provider": null
                                      }
                                  },
                                  {
                                      "id": "11ef3355-6cec-f0dc-a579-d3bb89aab116",
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "transaction_token_id": "11ef3355-6cc6-194e-a5e0-bfd94bdad70d",
                                      "amount": 100,
                                      "currency": "JPY",
                                      "amount_formatted": 100,
                                      "initial_amount": null,
                                      "initial_amount_formatted": null,
                                      "subsequent_cycles_start": null,
                                      "schedule_settings": {
                                          "start_on": null,
                                          "zone_id": "Asia/Tokyo",
                                          "preserve_end_of_month": null,
                                          "retry_interval": null,
                                          "termination_mode": "immediate"
                                      },
                                      "only_direct_currency": false,
                                      "first_charge_capture_after": null,
                                      "first_charge_authorization_only": false,
                                      "status": "current",
                                      "metadata": {},
                                      "mode": "test",
                                      "created_on": "2024-06-26T00:45:46.447678Z",
                                      "period": "monthly",
                                      "merchant_name": "管理画面ガイド",
                                      "store_name": "管理画面ガイド_TEST店舗",
                                      "payment_type": "card",
                                      "next_payment_date": "2024-07-26",
                                      "user_data": {
                                          "type": "charge",
                                          "cardholder_name": "hanako yamada",
                                          "email": "demo@demo.com",
                                          "brand": "master",
                                          "gateway": null,
                                          "service_provider": null
                                      }
                                  },
                          
                          <中略>      
                          
                              ],
                              "has_more": true,
                              "total_hits": 99
                          }

                          102. 返金 - 概要

                          返金(Refund)は、消費者にお金を返すために使用します。
                          詐欺や誤った注文、重複課金などの対応として返金(Refund)が行われます。
                          返金(Refund)は、課金(Charge)と同じ通貨で行う必要があり、その金額は課金(Charge)と同額かそれ以下となります。
                          合計の返金金額が課金金額以下であれば、一つの課金に対して複数の返金を行うこともできます。

                          返金(Refund)は、非同期処理されます。
                          まず作成時には、pending状態になっており、ステータスを自動的にsuccessfulfailederrorに変更します。
                          ウェブフックREFUND_FINISHEDイベントを登録して返金(Refund)の最終状態を得ることができます。

                          返金(Refund)が行われた時でも、返金対象の課金のトランザクション費用は請求されます。
                          テストデータの情報は、テストカード番号を参照下さい。

                          返金(Refund)オブジェクト

                          フィールド名データ型備考
                          idstring (UUID)返金のユニークID
                          store_idstring (UUID)返金対象の課金が属する店舗のID
                          charge_idstring (UUID)返金(Refund)を行う課金のID
                          statusstring返金のステータス
                          pendingsuccessfulfailederrorのいずれか
                          amountnumber返金の金額
                          currencystring (ISO-4217)返金する金額の通貨
                          amount_formattedstring補助単位があればその小数の値を含む返金のリクエスト金額
                          reasonstring返金の理由
                          fraudduplicatecustomer_requestchargebackのいずれか
                          chargebackは加盟店で設定不可で、後日カード会社から課金が拒否された場合に設定
                          messagestring返金の詳細な理由
                          error.codestring課金が失敗またはエラーになった理由を表すエラーコード
                          error.messagestring課金が失敗した理由
                          error.detailstring課金が失敗した詳細理由
                          metadatajson返金に紐づいている加盟店定義のメタデータ
                          modestringliveまたはtest
                          created_onstring (ISO-8601)返金が作成された日時

                          103. 銀行振込 - 概要

                          本サービスの銀行振込は、申込ごとに発行したユニークな口座番号への振込確認・消込を自動で行い、結果を反映する仕組みです。
                          利用する口座は「GMOあおぞらネット銀行」から発行されます。
                          これにより、手作業による振込確認と消込が必要なくなります。

                          銀行振込でサポートしている内容は、以下を参照してください。

                          課金方式

                          都度課金およびリカーリング課金を利用できます。
                          定期課金には利用できません。

                          実装方法

                          当社決済フォーム(リンクフォーム,ウィジェット)の設置と、APIでの連携が可能です。

                          処理

                          以下の処理は対応していないため、有効にしても無視されます。

                          処理注意点
                          CVV認証(CVV auth)
                          仮売上
                          分割払い
                          無効な項目のため
                          定期課金未実装な項目のため

                          103.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あおぞらネット銀行に送信した時

                          103.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

                          103.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"から確認できます。

                          104. オンライン決済 - 特徴

                          消費者の支払いフロー

                          ここでは、当社決済フォームを開いてから決済が完了するまでの流れを説明します。
                          決済手段や消費者の使用するデバイスによっては、利用できない方法があります。

                          PCブラウザで開く場合

                          決済手段消費者の支払いフロー
                          PayPay Onlineブラウザ内でログイン情報を入力し、SMSで発行されたワンタイムコードを入力して決済
                          または
                          表示されたQRコードをモバイル端末で読み取って決済
                          Alipay Online表示されたQRコードをモバイル端末で読み取って決済
                          または
                          ブラウザ内でAlipayのアカウント情報を入力し、支払いパスワードを入力して決済
                          Alipay Plus Online表示されたQRコードをモバイル端末で読み取って決済
                          WeChat Pay Online非対応
                          d払い Online ブラウザ内でログイン情報を入力し、SMSで発行されたワンタイムコードを入力して決済

                          モバイル端末で開く場合

                          決済手段消費者の支払いフロー
                          PayPay Online端末内のアプリを開いて決済
                          または
                          ブラウザ内でログイン情報を入力し、SMSで発行されたワンタイムコードを入力して決済
                          Alipay Online端末内のアプリを開いて決済
                          または
                          ブラウザ内でAlipayのアカウント情報を入力し、支払いパスワードを入力して決済
                          Alipay Plus Online支払うウォレットを選択し、端末内の各アプリを開いて決済
                          WeChat Pay Onlineリンクフォームを利用する場合:
                          アプリ内で当社決済フォームを開き、そのままアプリ内で決済
                          ※決済手段でAlipay,Alipay Plusを選択すると支払い処理に失敗します。
                          ※アプリ外のブラウザからフォームを開いた場合は、決済手段として表示されず利用できません。

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

                          ※PayPay Onlineは決済時に消費者の情報を取得しないため、決済情報から消費者を特定できません。
                           そのため、決済フォームから消費者の情報を取得する(メールアドレスを必須項目にする等)または メタデータを付与するなど、消費者を特定できる実装を推奨します。

                          消費者の支払い画面は、下記の画像付き資料を参照してください。

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

                          テストモードの挙動

                          テストモードでは本番モードと挙動が異なります。
                          テストモードの挙動は下記のとおりです。

                          リクエスト方法挙動
                          ウィジェット
                          リンクフォーム
                          即時に課金ステータスが「成功」になる
                          APIレスポンスで "issuer_token": "test" が返却される
                          ※実際のイシュアトークン(URL)は発行されません。

                          テストモードでリクエストすることで、メール通知とウェブフック(システム通知)を確認できます。

                          105. 定期課金 - UPDATE

                          定期課金オブジェクトに対するUPDATEリクエストには以下が必要です。(括弧内は入力箇所)

                          • 店舗ID(URLの{storeId}部分)
                          • 定期課金ID(URLの{subscriptionId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request PATCH \
                          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId} \
                          --header 'Authorization: Bearer {secret}.{jwt}' \
                          --header 'content-type: application/json' \

                          利用できるパラメータ

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

                          フィールドデータ型備考
                          transaction_token_idstring (UUID)定期課金で使用するトランザクショントークン
                          クレジットカードの有効期限が切れ、他のカードの切り替える為などに使用
                          定期課金の状態が unconfirmedunpaidcurrentsuspended の場合に変更可能
                          amountnumber定期課金の課金額
                          metadatajson定期課金に紐づいているメタデータ
                          statusstring定期課金の状態
                          suspended:ステータスを一時停止
                          unpaid:一時停止の定期課金を再開
                          schedule_settingsjson定期課金の停止リクエストが送信されたときの処理
                          termination_modeの値によって停止のタイミングを指定
                          immediate:即座に停止または終了
                          on_next_payment:次回課金日の直前に停止または終了
                          例:{"termination_mode": "on_next_payment"}

                          Bodyの記述例

                          curl --request PATCH \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/subscriptions/11ef335e-9aa5-c54a-8313-7f9847da313a \
                          --header 'Authorization: Bearer {secret}.{jwt}' \
                          --header 'content-type: application/json' \
                          --data '{
                            "metadata":{
                                "ServiceId": 7843568
                            },
                            "transaction_token_id": "11ef3362-3700-c54a-9baa-6f7e6527c9d9",
                            "schedule_settings": {"termination_mode": "on_next_payment"}
                          }'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef335e-9aa5-c54a-8313-7f9847da313a",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "transaction_token_id": "11ef3362-3700-c54a-9baa-6f7e6527c9d9",
                              "amount": 1250,
                              "currency": "USD",
                              "amount_formatted": 12.50,
                              "initial_amount": null,
                              "initial_amount_formatted": null,
                              "subsequent_cycles_start": null,
                              "schedule_settings": {
                                  "start_on": null,
                                  "zone_id": "Asia/Tokyo",
                                  "preserve_end_of_month": null,
                                  "retry_interval": null,
                                  "termination_mode": "on_next_payment"
                              },
                              "only_direct_currency": false,
                              "first_charge_capture_after": null,
                              "first_charge_authorization_only": false,
                              "status": "current",
                              "metadata": {
                                  "ServiceId": 7843568
                              },
                              "mode": "test",
                              "created_on": "2024-06-26T01:51:28.627023Z",
                              "period": "monthly",
                              "next_payment": {
                                  "id": "11ef335e-9ae2-8322-8e79-e7ba4b56234e",
                                  "due_date": "2024-07-26",
                                  "zone_id": "Asia/Tokyo",
                                  "amount": 1250,
                                  "currency": "USD",
                                  "amount_formatted": 12.50,
                                  "is_paid": false,
                                  "is_last_payment": false,
                                  "created_on": "2024-06-26T01:51:29.025129Z",
                                  "updated_on": "2024-06-26T01:51:29.025129Z",
                                  "retry_date": null
                              }
                          }

                          106. コンビニ決済 - 概要

                          電算システムを利用した決済手段です。

                          決済フォームでの情報入力が完了すると、指定したコンビニエンスストアで入金を行うための情報が発行されます。
                          入金に必要な情報は、通知メールもしくはメタデータから確認可能です。
                          発行された情報をもとに消費者が入金を行うと、入金確認を自動で行い、結果を反映します。

                          また、管理画面の「ウェブフック」でURLを登録することによって、入金結果のシステム通知を受けることも可能です。

                          コンビニ決済でサポートしている内容は、以下を参照してください。

                          課金方式

                          都度課金およびリカーリング課金を利用できます。
                          定期課金には利用できません。

                          実装方法

                          当社決済フォーム(リンクフォーム,ウィジェット)の設置と、APIでの連携が可能です。

                          処理

                          以下の処理は対応していないため、有効にしても無視されます。

                          処理無視される理由
                          CVV認証(CVV auth)
                          仮売上
                          分割払い
                          無効な項目のため
                          定期課金未実装な項目のため

                          106.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}として内容が表示されます。
                          各コンビニエンスストアでの支払い番号などの情報を含んでいて、支払先ごとに内容を編集できます。

                          106.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

                          方法3 間隔を指定(コンビニ決済のみ対応)

                          課金作成時に以下記述をしてください。

                          実装方法フィールド値の指定例(3日後の12:34:56までの場合
                          ウィジェット
                          (HTML / JavaScript)
                          data-convenience-store-expiration-period /
                          convenienceStoreExpirationPeriod
                          かつ
                          data-convenience-store-expiration-time-shift /
                          convenienceStoreExpirationTimeShift
                          P3D
                          かつ
                          12:34:56+09:00
                          リンクフォームconvenienceStoreExpirationPeriod
                          かつ
                          convenienceStoreExpirationTimeShift
                          P3D
                          かつ
                          12:34:56+09:00
                          (または12%3A34%3A56%2B09%3A00

                          106.3 コンビニ決済 - APIへのリクエスト

                          本ガイドは、コンビニ決済における各API処理の補足説明です。

                          コンビニ決済に必要な消費者の情報には、カード番号のような保護が必要な情報は含まれていないため、決済を行うシステムがPCI DSSに準拠していない場合でもAPIへのリクエストでトークンを作成できます。

                          以下では、本サービスのウィジェットやリンクフォームを使用せず、加盟店さま側で支払ページを作成しAPIで処理する場合のフローを説明します。

                          1.トークン作成

                          消費者の情報をトークン化して保存します。
                          詳細は、APIリファレンス「トランザクショントークン – CREATE」を確認してください。

                          リクエストBody例

                          {
                            "payment_type" : "konbini",
                            "type" : "one_time",
                            "email" : "demo@univapay.com",
                            "data" : {
                            "customer_name" : "テスト 太郎",
                            "phone_number" : {
                               "country_code" : "81",
                               "local_number" : "0364413400"
                             }, 
                              "convenience_store" : "family_mart"
                            },
                            "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,
                            "fee_amount": null,
                            "fee_currency": null,
                            "fee_amount_formatted": null,
                            "only_direct_currency": false,
                            "capture_at": null,
                            "descriptor": null,
                            "descriptor_phone_number": null,
                            "status": "awaiting",
                            "error": null,
                            "metadata": {
                              "internal_convenience_payment_number": "20020-123456789012",
                              "internal_convenience_payment_url": "https:/example.com"
                            },
                            "mode": "live",
                            "created_on": "2022-07-20T06:28:44.521327Z"
                          }

                          支払先の情報は、レスポンスの"metadata"の値として反映されます。
                          支払先の情報が反映されるタイミングは、課金作成のリクエスト時ではなく、課金申込が成功して"status": "awaiting"になった時以降です。
                          "metadata"の値とその内容は以下の通りです。

                          "metadata"の値内容
                          internal_convenience_payment_number支払い番号
                          internal_convenience_payment_url支払い票のURL
                          ※支払先がセブンイレブンの場合のみ発行されます

                          Pay-easyの場合は支払いに別途「収納機関番号」が必要です。
                          値は固定されていて、共通で58091です。
                          課金取得時のレスポンスには反映されず、申込完了メールにのみ反映されます。

                          4課金の取得

                          入金の結果を取得します。
                          詳細は、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"から確認できます。

                          107. オンライン決済 - 要注意なパラメータ

                          事前に読むべきページ

                          このページでは、以下のページが読まれていることを前提として説明します。

                          ウィジェット

                          リンクフォーム

                          表示させる決済手段の限定

                          課金作成時に以下記述をすることで、他の決済手段を含まず、オンライン決済の手続きだけを消費者に行わせることができます。
                          また、役割の異なるパラメータが、意図せず適用されることを防げます。

                          実装方法フィールド値の例(オンライン決済のみ表示させたい場合)
                          ウィジェット
                          (HTML / JavaScript)
                          data-payment-methods /
                          paymentMethods
                          online
                          リンクフォームpaymentMethods[]online
                          実装方法フィールド値の例(オンライン決済かつ特定のQR事業者に限定したい場合)
                          ウィジェット
                          (HTML / JavaScript)
                          data-payment-methods /
                          paymentMethods
                          pay_pay_online, we_chat_online, alipay_online, alipay_plus_online
                          リンクフォームpaymentMethods[]pay_pay_online, we_chat_online, alipay_online, alipay_plus_online

                          この指定をしない場合は、利用可能なすべての決済手段が表示されます。
                          全てではなく、いくつか特定の決済手段を表示させたい場合は、それぞれの決済手段を指定してください。

                          108. 定期課金 - CANCEL

                          定期課金オブジェクトに対するCANCELリクエストには以下が必要です。(括弧内は入力箇所)
                          作成された既存の定期課金を削除し、管理画面のステータスは「永久停止」となり再開不可ですのでご注意ください。

                          • 店舗ID(URLの{storeId}部分)
                          • 定期課金ID(URLの{subscriptionId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request DELETE \
                          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId} \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          Bodyの記述例

                          curl --request DELETE \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/subscriptions/11ef335e-9aa5-c54a-8313-7f9847da313a \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          109. 返金 - リクエスト

                          109.1 返金 - CREATE

                          返金オブジェクトに対するCREATEリクエストには以下が必要です。(括弧内は入力箇所)

                          • 店舗ID(URLの{storeId}部分)
                          • 課金ID(URLの{chargeId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request POST \
                          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/refunds \
                          --header 'Authorization: Bearer {secret}.{jwt}' \
                          --header 'content-type: application/json' \

                          利用できるパラメータ

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

                          フィールド
                          赤字は必須
                          は条件付き必須
                          データ型備考
                          amountnumber課金金額以下の返金金額
                          currencystring (ISO-4217) ISO 4217の通貨コードで指定
                          reasonstring返金理由
                          fraudduplicatecustomer_requestのいずれか
                          messagestring返金の詳細理由
                          metadatajson自由に設定可能
                          詳細はメタデータを参照

                          Bodyの記述例

                          curl --request POST \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c3-3cfe-3bc0-abed-0bb96f792078/refunds \
                          --header 'Authorization: Bearer {secret}.{jwt}' \
                          --header 'content-type: application/json' \
                          --data '{
                            "amount": 250,
                            "currency": "JPY",
                            "reason": "customer_request",
                            "message": "15 percent off",
                            "metadata": {
                                "coupon": "VIP007"
                            }
                          }'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef32c8-c721-823a-ba45-77212da778fa",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
                              "status": "pending",
                              "amount": 250,
                              "currency": "JPY",
                              "amount_formatted": 250,
                              "reason": "customer_request",
                              "message": "15 percent off",
                              "error": null,
                              "metadata": {
                                  "coupon": "VIP007"
                              },
                              "mode": "test",
                              "created_on": "2024-06-25T07:58:58.748326Z"
                          }

                          109.2 返金 - GET

                          返金オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

                          • 店舗ID(URLの{storeId}部分)
                          • 課金ID(URLの{chargeId}部分)
                          • 返金ID(URLの{id}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/refunds/{id} \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。

                          フィールド名データ型備考
                          pollingbooleanステータスが pending(初期ステータス)から別のステータスに変更されるまで、課金のステータスを内部でポーリングするようにAPIに指示する

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c3-3cfe-3bc0-abed-0bb96f792078/refunds/11ef32c8-c721-823a-ba45-77212da778fa \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef32c8-c721-823a-ba45-77212da778fa",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
                              "status": "successful",
                              "amount": 250,
                              "currency": "JPY",
                              "amount_formatted": 250,
                              "reason": "customer_request",
                              "message": "15 percent off",
                              "error": null,
                              "metadata": {
                                  "coupon": "VIP007"
                              },
                              "mode": "test",
                              "created_on": "2024-06-25T07:58:58.748326Z"
                          }

                          109.3 返金 - LIST

                          返金オブジェクトのLISTリクエストには以下が必要です。(括弧内は入力箇所)
                          課金 / 返金などをまとめて表示させたい場合はトランザクション:Listを推奨します。

                          • 店舗ID(URLの{storeId}部分)
                          • 課金ID(URLの{chargeId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/refunds \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c3-3cfe-3bc0-abed-0bb96f792078/refunds \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "items": [
                                  {
                                      "id": "11ef32c8-c721-823a-ba45-77212da778fa",
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
                                      "status": "successful",
                                      "amount": 250,
                                      "currency": "JPY",
                                      "amount_formatted": 250,
                                      "reason": "customer_request",
                                      "message": "15 percent off",
                                      "error": null,
                                      "metadata": {
                                          "coupon": "VIP007"
                                      },
                                      "mode": "test",
                                      "created_on": "2024-06-25T07:58:58.748326Z",
                                      "merchant_name": "管理画面ガイド",
                                      "store_name": "管理画面ガイド_TEST店舗"
                                  },
                                {
                                      "id": "11ef32c9-f49b-a6ea-9f24-17662f077450",
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
                                      "status": "successful",
                                      "amount": 100,
                                      "currency": "JPY",
                                      "amount_formatted": 100,
                                      "reason": "customer_request",
                                      "message": "return",
                                      "error": null,
                                      "metadata": {},
                                      "mode": "test",
                                      "created_on": "2024-06-25T08:12:15.763927Z",
                                      "merchant_name": "管理画面ガイド",
                                      "store_name": "管理画面ガイド_TEST店舗"
                                  }
                              ],
                              "has_more": false,
                              "total_hits": 2
                          }

                          109.4 返金 - 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}/refunds \
                          --header 'Authorization: Bearer {secret}.{jwt}' \
                          --header 'content-type: application/json' \

                          利用できるパラメータ

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

                          フィールド名データ型備考
                          metadatajson返金(Refund)に紐づくメタデータ

                          Bodyの記述例

                          curl --request PATCH \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/refunds/11ef32c8-c721-823a-ba45-77212da778fa \
                          --header 'Authorization: Bearer {secret}.{jwt}' \
                          --header 'content-type: application/json' \
                          --data '{"metadata": {"customer_id":5555}}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef32c8-c721-823a-ba45-77212da778fa",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
                              "status": "successful",
                              "amount": 250,
                              "currency": "JPY",
                              "amount_formatted": 250,
                              "reason": "customer_request",
                              "message": "15 percent off",
                              "error": null,
                              "metadata": {
                                  "coupon": "VIP007",
                                  "customer_id": 5555
                              },
                              "mode": "test",
                              "created_on": "2024-06-25T07:58:58.748326Z"
                          }

                          110. キャンセル - 概要

                          キャンセルリソースは、awaiting もしくは authorized 状態の課金に対してキャンセルを作成する為に使われ、またその状態を表現します。
                          これは、コンビニ決済で課金を作成した時、もしくはクレジットカード(Apple Pay を含む)決済でオーソリを行った際に利用します。
                          successful 状態の課金については、返金 を参照ください。

                          キャンセルオブジェクト

                          フィールド名データ型備考
                          idstring (UUID)キャンセルのID
                          store_idstring (UUID)キャンセルが行われた店舗のID
                          charge_idstring (UUID)キャンセルが行われた課金のID
                          statusstringキャンセルの状態
                          pendingsuccessfulfailederrorのいずれか
                          error.codestring課金が失敗またはエラーになった理由を表すエラーコード
                          error.messagestring課金が失敗した理由
                          error.detailstring課金が失敗した詳細理由
                          metadatajsonキャンセルに紐づいているメタデータ
                          modestringliveまたはtest
                          created_onstring (ISO-8601)キャンセルが作成された日時

                          111. オンライン決済 - APIへのリクエスト

                          本ガイドは、オンライン決済における各API処理の補足説明です。

                          オンライン決済に必要な消費者の情報には、カード番号のような保護が必要な情報は含まれていないため、決済を行うシステムがPCI DSSに準拠していない場合でもAPIへのリクエストでトークンを作成できます。

                          以下では、本サービスのウィジェットやリンクフォームを使用せず、加盟店さま側で支払ページを作成しAPIで処理する場合のフローを説明します。
                          APIの処理によって各QR事業者の支払い画面を呼び出すための流れは下記です。

                          1トークン作成

                          消費者の情報をトークン化して保存します。
                          詳細はこちらのドキュメントを確認してください。

                          決済手段によって必要な情報が異なります。
                          また、 http_get や http_post など、各QR事業者が要求する実行方法によっても指定する値が異なります。

                          リクエストBody例

                          {
                            "payment_type" : "online",
                            "type" : "one_time",
                            "email" : "demo@univapay.com",
                            "data" : {
                              "brand" : "alipay_plus_online",
                              "call_method" : "http_get"
                            },
                            "metadata": {
                              "memberid" : "12345"
                            },
                          }

                          2課金作成

                          作成したトークンに対して課金申込を行います。
                          詳細はこちらのドキュメントを確認してください。

                          リクエストBody例

                          {
                          "transaction_token_id": "9c3b37f8-1851-11e7-9b58-8b8ddbe8f1d1",
                          "amount": 1000,
                          "currency": "JPY",
                          "metadata": {
                              "order_id": 12345,
                              "shipping_details": "Customer wants it now"
                            },
                          "redirect": {
                              "endpoint": "https://test.url/path?additionalParams=paramValue"
                            }
                          }

                          3課金取得

                          課金申込の結果を取得します。
                          詳細はこちらのドキュメントを確認してください。

                          "status": "awaiting" が確認できたら正常に課金申込が完了し、消費者からの入金待ちの状態です。

                          ウェブフックで結果を受信することも可能です。
                          (ウェブフックのイベント名はcharge_updatedです。)

                          レスポンス / ウェブフック Body例

                          {
                            "id": "0fe1e42a-1845-11e7-9b1f-d3bd0c055a99",
                            "store_id": "af857264-180c-11e7-9be2-276aea4fed28",
                            "transaction_token_id": "9c3b37f8-1851-11e7-9b58-8b8ddbe8f1d1",
                            "transaction_token_type": "one_time",
                            "subscription_id": null,
                            "requested_amount": 1000,
                            "requested_currency": "JPY",
                            "requested_amount_formatted": 1000,
                            "charged_amount": 1000,
                            "charged_currency": "JPY",
                            "charged_amount_formatted": 1000,
                            "status": "awaiting",
                            "error": null,
                            "metadata": {
                              "customer_id": 12345,
                              "shipping_details": "Customer wants it now"
                            },
                            "mode": "test",
                            "created_on": "2018-07-13T02:55:00.07367Z"
                          }

                          状況は、課金の状態 "status" および入金額 "charged_amount_formatted" から確認できます。

                          4イシュアトークン取得

                          取得した課金IDを基に各QR事業者の支払い画面を呼び出します。
                          レスポンスで発行された各QR事業者の支払いURLを消費者側に表示すると、支払いに進めます。
                          詳細はこちらのドキュメントを確認してください。

                          レスポンス Body例

                          { "issuer_token": "test", "call_method": "http_get" }

                          112. オンライン決済 - 概要

                          決済処理を行う際に各QR事業者(プロバイダ事業者)の画面に遷移し、消費者側がログインして決済する または 各アプリを開いて決済する手段です。
                          下記がオンライン決済に該当します。

                          • PayPay Online
                          • Alipay Online
                          • Alipay Plus Online
                          • WeChat Pay Online
                          • d払い Online

                          オンライン決済でサポートしている内容は、以下を参照してください。

                          課金方式

                          都度課金のみ利用できます。
                          定期課金やリカーリングトークンを用いた継続的な課金には利用できません。

                          実装方法

                          当社決済フォーム(リンクフォーム,ウィジェット)の設置と、APIでの連携が可能です。

                          処理

                          以下の処理は対応していないため、有効にしても無視されます。

                          処理無視される理由
                          カード登録(リカーリングトークン作成)
                          CVV認証(CVV auth)
                          仮売上
                          分割払い
                          無効な項目のため
                          定期課金未実装な項目のため

                          112.1 オンライン決済 - 特徴

                          消費者の支払いフロー

                          ここでは、当社決済フォームを開いてから決済が完了するまでの流れを説明します。
                          決済手段や消費者の使用するデバイスによっては、利用できない方法があります。

                          PCブラウザで開く場合

                          決済手段消費者の支払いフロー
                          PayPay Onlineブラウザ内でログイン情報を入力し、SMSで発行されたワンタイムコードを入力して決済
                          または
                          表示されたQRコードをモバイル端末で読み取って決済
                          Alipay Online表示されたQRコードをモバイル端末で読み取って決済
                          または
                          ブラウザ内でAlipayのアカウント情報を入力し、支払いパスワードを入力して決済
                          Alipay Plus Online表示されたQRコードをモバイル端末で読み取って決済
                          WeChat Pay Online非対応
                          d払い Online ブラウザ内でログイン情報を入力し、SMSで発行されたワンタイムコードを入力して決済

                          モバイル端末で開く場合

                          決済手段消費者の支払いフロー
                          PayPay Online端末内のアプリを開いて決済
                          または
                          ブラウザ内でログイン情報を入力し、SMSで発行されたワンタイムコードを入力して決済
                          Alipay Online端末内のアプリを開いて決済
                          または
                          ブラウザ内でAlipayのアカウント情報を入力し、支払いパスワードを入力して決済
                          Alipay Plus Online支払うウォレットを選択し、端末内の各アプリを開いて決済
                          WeChat Pay Onlineリンクフォームを利用する場合:
                          アプリ内で当社決済フォームを開き、そのままアプリ内で決済
                          ※決済手段でAlipay,Alipay Plusを選択すると支払い処理に失敗します。
                          ※アプリ外のブラウザからフォームを開いた場合は、決済手段として表示されず利用できません。

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

                          ※PayPay Onlineは決済時に消費者の情報を取得しないため、決済情報から消費者を特定できません。
                           そのため、決済フォームから消費者の情報を取得する(メールアドレスを必須項目にする等)または メタデータを付与するなど、消費者を特定できる実装を推奨します。

                          消費者の支払い画面は、下記の画像付き資料を参照してください。

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

                          テストモードの挙動

                          テストモードでは本番モードと挙動が異なります。
                          テストモードの挙動は下記のとおりです。

                          リクエスト方法挙動
                          ウィジェット
                          リンクフォーム
                          即時に課金ステータスが「成功」になる
                          APIレスポンスで "issuer_token": "test" が返却される
                          ※実際のイシュアトークン(URL)は発行されません。

                          テストモードでリクエストすることで、メール通知とウェブフック(システム通知)を確認できます。

                          112.2 オンライン決済 - 要注意なパラメータ

                          事前に読むべきページ

                          このページでは、以下のページが読まれていることを前提として説明します。

                          ウィジェット

                          リンクフォーム

                          表示させる決済手段の限定

                          課金作成時に以下記述をすることで、他の決済手段を含まず、オンライン決済の手続きだけを消費者に行わせることができます。
                          また、役割の異なるパラメータが、意図せず適用されることを防げます。

                          実装方法フィールド値の例(オンライン決済のみ表示させたい場合)
                          ウィジェット
                          (HTML / JavaScript)
                          data-payment-methods /
                          paymentMethods
                          online
                          リンクフォームpaymentMethods[]online
                          実装方法フィールド値の例(オンライン決済かつ特定のQR事業者に限定したい場合)
                          ウィジェット
                          (HTML / JavaScript)
                          data-payment-methods /
                          paymentMethods
                          pay_pay_online, we_chat_online, alipay_online, alipay_plus_online
                          リンクフォームpaymentMethods[]pay_pay_online, we_chat_online, alipay_online, alipay_plus_online

                          この指定をしない場合は、利用可能なすべての決済手段が表示されます。
                          全てではなく、いくつか特定の決済手段を表示させたい場合は、それぞれの決済手段を指定してください。

                          112.3 オンライン決済 - APIへのリクエスト

                          本ガイドは、オンライン決済における各API処理の補足説明です。

                          オンライン決済に必要な消費者の情報には、カード番号のような保護が必要な情報は含まれていないため、決済を行うシステムがPCI DSSに準拠していない場合でもAPIへのリクエストでトークンを作成できます。

                          以下では、本サービスのウィジェットやリンクフォームを使用せず、加盟店さま側で支払ページを作成しAPIで処理する場合のフローを説明します。
                          APIの処理によって各QR事業者の支払い画面を呼び出すための流れは下記です。

                          1トークン作成

                          消費者の情報をトークン化して保存します。
                          詳細はこちらのドキュメントを確認してください。

                          決済手段によって必要な情報が異なります。
                          また、 http_get や http_post など、各QR事業者が要求する実行方法によっても指定する値が異なります。

                          リクエストBody例

                          {
                            "payment_type" : "online",
                            "type" : "one_time",
                            "email" : "demo@univapay.com",
                            "data" : {
                              "brand" : "alipay_plus_online",
                              "call_method" : "http_get"
                            },
                            "metadata": {
                              "memberid" : "12345"
                            },
                          }

                          2課金作成

                          作成したトークンに対して課金申込を行います。
                          詳細はこちらのドキュメントを確認してください。

                          リクエストBody例

                          {
                          "transaction_token_id": "9c3b37f8-1851-11e7-9b58-8b8ddbe8f1d1",
                          "amount": 1000,
                          "currency": "JPY",
                          "metadata": {
                              "order_id": 12345,
                              "shipping_details": "Customer wants it now"
                            },
                          "redirect": {
                              "endpoint": "https://test.url/path?additionalParams=paramValue"
                            }
                          }

                          3課金取得

                          課金申込の結果を取得します。
                          詳細はこちらのドキュメントを確認してください。

                          "status": "awaiting" が確認できたら正常に課金申込が完了し、消費者からの入金待ちの状態です。

                          ウェブフックで結果を受信することも可能です。
                          (ウェブフックのイベント名はcharge_updatedです。)

                          レスポンス / ウェブフック Body例

                          {
                            "id": "0fe1e42a-1845-11e7-9b1f-d3bd0c055a99",
                            "store_id": "af857264-180c-11e7-9be2-276aea4fed28",
                            "transaction_token_id": "9c3b37f8-1851-11e7-9b58-8b8ddbe8f1d1",
                            "transaction_token_type": "one_time",
                            "subscription_id": null,
                            "requested_amount": 1000,
                            "requested_currency": "JPY",
                            "requested_amount_formatted": 1000,
                            "charged_amount": 1000,
                            "charged_currency": "JPY",
                            "charged_amount_formatted": 1000,
                            "status": "awaiting",
                            "error": null,
                            "metadata": {
                              "customer_id": 12345,
                              "shipping_details": "Customer wants it now"
                            },
                            "mode": "test",
                            "created_on": "2018-07-13T02:55:00.07367Z"
                          }

                          状況は、課金の状態 "status" および入金額 "charged_amount_formatted" から確認できます。

                          4イシュアトークン取得

                          取得した課金IDを基に各QR事業者の支払い画面を呼び出します。
                          レスポンスで発行された各QR事業者の支払いURLを消費者側に表示すると、支払いに進めます。
                          詳細はこちらのドキュメントを確認してください。

                          レスポンス Body例

                          { "issuer_token": "test", "call_method": "http_get" }

                          113. 定期課金 - 課金 - LIST

                          定期課金オブジェクトに対する課金LISTリクエストには以下が必要です。(括弧内は入力箇所)
                          課金のデータモデルの詳細は課金オブジェクトを参照してください。

                          • 店舗ID(URLの{storeId}部分)
                          • 定期課金ID(URLの{subscriptionId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId}/charges \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。
                          全てがand条件で検索され、リストが作成されます。

                          フィールドデータ型備考
                          last_fournumber使用したクレジットカードの下4桁でフィルタリングする
                          指定する場合は、nameexp_monthexp_yearも含める必要あり
                          namestringカード所有者の名前でフィルタリングする
                          指定する場合は、last_fourexp_monthexp_yearも含める必要あり
                          exp_monthnumber使用したカードの有効期限(月)でフィルタリングする
                          指定する場合は、 last_fournameexp_yearも含める必要あり
                          exp_yearnumber使用したカードの有効期限(年)でフィルタリングする
                          指定する場合は、last_fournameexp_monthも含める必要あり
                          card_numbernumberクレジットカード番号でフィルタリングする
                          fromstring (ISO-8601)この日付以降に作成された課金を表示する
                          tostring (ISO-8601)この日付より前に作成された課金を表示する
                          emailstringメールアドレスでフィルタリングする
                          phonestring電話番号でフィルタリングする
                          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/23f45c5e-18ef-11e7-96ee-d756c0178178/subscriptions/25d0fb2c-18ef-11e7-9dd3-db8fb7b820e7/charges \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                            "items": [
                              {
                                "id": "26f9059e-18ef-11e7-a74f-173cf0f9475a",
                                "store_id": "23f45c5e-18ef-11e7-96ee-d756c0178178",
                                "transaction_token_id": "259e9240-18ef-11e7-94da-97e85c2e269c",
                                "requested_amount": 483200,
                                "requested_currency": "EUR",
                                "requested_amount_formatted": 4832,
                                "charged_amount": 483200,
                                "charged_currency": "EUR",
                                "charged_amount_formatted": 4832,
                                "status": "successful",
                                "error": null,
                                "metadata": {},
                                "mode": "test",
                                "created_on": "2018-07-13T02:55:00.07367Z"
                              },
                              {
                                "id": "270858e6-18ef-11e7-adfa-6ff75ea1c202",
                                "store_id": "23f45c5e-18ef-11e7-96ee-d756c0178178",
                                "transaction_token_id": "259f4a8c-18ef-11e7-b8fe-17e053dc5c54",
                                "requested_amount": 2491,
                                "requested_currency": "JPY",
                                "requested_amount_formatted": 2491,
                                "charged_amount": 2491,
                                "charged_currency": "JPY",
                                "charged_amount_formatted": 2491,
                                "status": "successful",
                                "error": null,
                                "metadata": {},
                                "mode": "test",
                                "created_on": "2018-07-13T02:55:00.07367Z"
                              }
                            ],
                            "has_more": false
                          }

                          114. Paidy - 概要

                          Paidy(後払い)とは、購入代金を自由な方法で翌月にまとめて支払うことができる決済手段です。
                          決済フォームでメールアドレスと電話番号を入力し、SMS認証を行うことで決済を行います。

                          Paidyでサポートしている内容は、以下を参照してください。

                          課金方式

                          都度課金および定期課金、リカーリング課金を利用できます。

                          実装方法

                          当社決済フォーム(リンクフォーム,ウィジェット)の設置のみ対応しています。
                          APIでの連携には対応していません。

                          処理

                          以下の処理は無効な項目のため、有効にしても無視されます。

                          • CVV認証(CVV auth)
                          • 分割払い

                          114.1 Paidy - 特徴

                          消費者の支払いフロー

                          当社決済フォームへ情報を入力後、Paidyの決済画面が開いたら案内に沿って進むと、再度当社画面に戻って決済が完了する流れです。
                          ウィジェットの場合は「支払う」ボタンを押し、リンクフォームの場合は待機すると支払い完了画面が表示されます。

                          消費者の支払い画面は、下記の画像付き資料を参照してください。

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

                          結果の通知・確認

                          結果を加盟店さまの配送(または、それに準ずる会員ステータス等の)システムに自動で反映する必要がある場合は、ウェブフックで結果を受信して注文システムを更新するプログラムを設置してください。また、結果はAPIへリクエストすることでも取得できます。

                          システム連動を行わず、管理画面またはメールで結果を確認する場合は作成する必要はありません。

                          テストモードの挙動

                          Paidyはテストモードの決済に対応していません。
                          本番モードの挙動は本ページ「消費者の支払いフロー」で確認してください。

                          114.2 Paidy - 要注意なパラメータ

                          本ページは、Paidyに対してパラメータを使用する場合に、注意すべき点の補足説明です。

                          事前に読むべきページ

                          このページでは、以下のページが読まれていることを前提として説明します。

                          ウィジェット

                          リンクフォーム

                          表示させる決済手段の限定

                          課金作成時に以下記述をすることで、他の決済手段を含まず、Paidyの手続きだけを消費者に行わせることができます。
                          また、役割の異なるパラメータが、意図せず適用されることを防げます。

                          実装方法フィールド値の例(Paidyのみ表示させたい場合)
                          ウィジェット
                          (HTML / JavaScript)
                          data-payment-methods /
                          paymentMethods
                          paidy
                          リンクフォームpaymentMethods[]paidy

                          この指定をしない場合は、利用可能なすべての決済手段が表示されます。
                          全てではなく、いくつか特定の決済手段を表示させたい場合は、それぞれの決済手段を指定してください。

                          115. Paidy - 特徴

                          消費者の支払いフロー

                          当社決済フォームへ情報を入力後、Paidyの決済画面が開いたら案内に沿って進むと、再度当社画面に戻って決済が完了する流れです。
                          ウィジェットの場合は「支払う」ボタンを押し、リンクフォームの場合は待機すると支払い完了画面が表示されます。

                          消費者の支払い画面は、下記の画像付き資料を参照してください。

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

                          結果の通知・確認

                          結果を加盟店さまの配送(または、それに準ずる会員ステータス等の)システムに自動で反映する必要がある場合は、ウェブフックで結果を受信して注文システムを更新するプログラムを設置してください。また、結果はAPIへリクエストすることでも取得できます。

                          システム連動を行わず、管理画面またはメールで結果を確認する場合は作成する必要はありません。

                          テストモードの挙動

                          Paidyはテストモードの決済に対応していません。
                          本番モードの挙動は本ページ「消費者の支払いフロー」で確認してください。

                          116. 支払い - 概要

                          このリクエストでは、定期課金の支払い情報を確認することができます。
                          支払いが完了しているか、次回課金日がいつかなどを確認したい場合はこちらをご利用下さい。

                          定期課金の支払いオブジェクト

                          フィールドデータ型備考
                          idstring (UUID)支払いのID
                          due_datestring (ISO-8601)支払いが実行される日付
                          時刻はzone_idで指定されたタイムゾーンのAM7:00
                          zone_idstring (IANA Timezone)支払いを実行する時刻が基準とするタイムゾーン
                          amountnumber課金金額
                          currencystring (ISO-4217)課金金額の通貨
                          amount_formattedstring補助単位があれば小数の値を含む課金金額
                          is_paidboolean支払いが完了したかどうか
                          is_last_paymentbooleanこの支払が定期課金の最後の支払いかどうか
                          分割払いの場合のみ適用
                          created_onstring (ISO-8601)この支払いの作成日時

                          117. キャンセル - リクエスト

                          117.1 キャンセル - CREATE

                          キャンセルオブジェクトに対するCREATEリクエストには以下が必要です。(括弧内は入力箇所)
                          awaiting もしくは authorized 状態の課金に対してキャンセルを作成することができます。

                          • 店舗ID(URLの{storeId}部分)
                          • 課金ID(URLの{chargeId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request POST \
                          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/cancels \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --header 'Content-type: application/json'

                          利用できるパラメータ

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

                          フィールド名データ型備考
                          metadatajsonキャンセルに紐付けるメタデータ

                          Bodyの記述例

                          curl --request POST \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c2-eecd-ed24-abb8-cf4e336a1340/cancels \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --header 'Content-type: application/json'
                          --data '{"metadata": {"order_id": 1234}}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef32cc-e895-655e-8e33-e36629277b4f",
                              "charge_id": "11ef32c2-eecd-ed24-abb8-cf4e336a1340",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "status": "pending",
                              "error": null,
                              "metadata": {
                                  "order_id": 1234
                              },
                              "mode": "test",
                              "created_on": "2024-06-25T08:28:32.859366Z"
                          }

                          117.2 キャンセル - GET

                          キャンセルオブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

                          • 店舗ID(URLの{storeId}部分)
                          • 課金ID(URLの{chargeId}部分)
                          • キャンセルされた課金ID(URLの{id}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/cancels/{id} \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。

                          フィールド名データ型備考
                          pollingbooleanキステータスが pending(初期ステータス)から別のステータスに変更されるまで、課金のステータスを内部でポーリングするようにAPIに指示する

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c2-eecd-ed24-abb8-cf4e336a1340/cancels/11ef32cc-e895-655e-8e33-e36629277b4f \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef32cc-e895-655e-8e33-e36629277b4f",
                              "charge_id": "11ef32c2-eecd-ed24-abb8-cf4e336a1340",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "status": "successful",
                              "error": null,
                              "metadata": {
                                  "order_id": 1234
                              },
                              "mode": "test",
                              "created_on": "2024-06-25T08:28:32.859366Z"
                          }

                          117.3 キャンセル - LIST

                          キャンセルオブジェクトに対するLISTリクエストには以下が必要です。(括弧内は入力箇所)
                          awaiting もしくは authorized 状態の課金に対して行われたキャンセルの一覧を取得できます。

                          • 店舗ID(URLの{storeId}部分)
                          • 課金ID(URLの{chargeId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/cancels \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c2-eecd-ed24-abb8-cf4e336a1340/cancels \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "items": [
                                  {
                                      "id": "11ef32cc-e895-655e-8e33-e36629277b4f",
                                      "charge_id": "11ef32c2-eecd-ed24-abb8-cf4e336a1340",
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "status": "successful",
                                      "error": null,
                                      "metadata": {
                                          "order_id": 1234
                                      },
                                      "mode": "test",
                                      "created_on": "2024-06-25T08:28:32.859366Z"
                                  },
                                {
                                      "id": "11ef32ce-ce90-3272-9ec3-c35d8985dfc2",
                                      "charge_id": "11ef32c2-eecd-ed24-abb8-cf4e336a1340",
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "status": "successful",
                                      "error": null,
                                      "metadata": {},
                                      "mode": "test",
                                      "created_on": "2024-06-25T08:42:08.198036Z"
                                  }
                              ],
                              "has_more": false
                          }

                          117.4 キャンセル - UPDATE

                          キャンセルオブジェクトに対するUPDATEリクエストには以下が必要です。(括弧内は入力箇所)
                          キャンセルした時に付与したメタデータを編集することができます。

                          • 店舗ID(URLの{storeId}部分)
                          • 課金ID(URLの{chargeId}部分)
                          • キャンセルされた課金ID(URLの{id}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Header{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request PATCH \
                          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/cancels/{id} \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --header 'Content-type: application/json'

                          利用できるパラメータ

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

                          フィールド名データ型備考
                          metadatajsonキャンセルに紐付けるメタデータ

                          Bodyの記述例

                          curl --request PATCH \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32ce-c739-9e0a-9ada-37dba0724131/cancels/11ef32ce-ce90-3272-9ec3-c35d8985dfc2 \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --header 'Content-type: application/json'
                          --data '{"metadata": {"order_id": 1234, "reason": "expired"}}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef32ce-ce90-3272-9ec3-c35d8985dfc2",
                              "charge_id": "11ef32ce-c739-9e0a-9ada-37dba0724131",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "status": "successful",
                              "error": null,
                              "metadata": {
                                  "reason": "expired",
                                  "order_id": 1234
                              },
                              "mode": "test",
                              "created_on": "2024-06-25T08:42:08.198036Z"
                          }

                          118. Paidy - 要注意なパラメータ

                          本ページは、Paidyに対してパラメータを使用する場合に、注意すべき点の補足説明です。

                          事前に読むべきページ

                          このページでは、以下のページが読まれていることを前提として説明します。

                          ウィジェット

                          リンクフォーム

                          表示させる決済手段の限定

                          課金作成時に以下記述をすることで、他の決済手段を含まず、Paidyの手続きだけを消費者に行わせることができます。
                          また、役割の異なるパラメータが、意図せず適用されることを防げます。

                          実装方法フィールド値の例(Paidyのみ表示させたい場合)
                          ウィジェット
                          (HTML / JavaScript)
                          data-payment-methods /
                          paymentMethods
                          paidy
                          リンクフォームpaymentMethods[]paidy

                          この指定をしない場合は、利用可能なすべての決済手段が表示されます。
                          全てではなく、いくつか特定の決済手段を表示させたい場合は、それぞれの決済手段を指定してください。

                          119. 定期課金

                          定期課金では、事前に指定したサイクルで自動的に課金を行います。
                          2回目以降の課金は、課金日の午前7時※より順次課金を開始します。
                          ※毎日の定期課金 および 定期課金開始日が定期課金作成日の1日後な場合に限り午前9時

                          定期課金を作成する方法については実装ガイドの各ページを参照してください。

                          ステータス

                          ステータス状態
                          待機中定期課金を作成し、初回課金の待機中
                          継続中現在稼働中の定期課金
                          一時停止一時停止され再開可能な状態
                          または 定期課金失敗回数を超えた状態
                          リトライ待ち継続中の定期課金で課金を失敗し、再課金を待っている状態
                          または 一時停止後に再開し、再課金を待っている状態
                          永久停止定期課金が完全に停止され再開不可な状態
                          作成失敗定期課金作成のため初回課金を行うも決済失敗した状態
                          (定期課金として稼働していない状態)
                          完了指定した課金回数分の決済が終わった状態
                          または 分割払いが成功した状態

                          定期課金で行うことができる処理

                          処理説明
                          一時停止・永久停止・停止予約停止処理をするとその時点から継続的な課金を行わないようになる
                          設定によっては停止リクエストがあった時、次回課金実行日まで停止しないようにすることも可能
                          再開一時停止になっている定期課金を再開する
                          再開後はリトライ日、もしくは次回課金日に実行される
                          リトライ定期課金のサイクルでの課金が失敗した際に一定間隔で再度課金を実行する
                          間隔・回数はリクエストのパラメータまたは管理画面より設定が可能
                          支払い情報の更新クレジットカード等、消費者の支払い情報を変更する
                          詳細はこちら
                          定期課金情報の更新管理画面から次回課金日、次回課金金額、メタデータ、メールアドレスなどの編集が可能
                          仮売上定期課金の初回課金を仮売上にする
                          キャプチャされた後に定期課金が開始しサイクル毎に課金が行われる
                          回数制限付き定期課金回数を制限した定期課金を行い、回数分の課金が完了後終了する※
                          初回無料の定期課金初回処理でセキュリティコード認証を行うことで、初回の金額が0円の定期課金を作成することが可能
                          分割払い各決済フォームで分割回数を指定して決済すると、定期課金として作成される
                          APIで作成する場合は定期課金オブジェクトでフィールドを指定する必要あり
                          ※割賦販売法に基づき、この機能を1商品を複数回に分けて決済するように利用することは禁止されています。
                          このような利用が発覚した際、カード会社からの調査依頼の発生や、加盟店契約の解約に至る可能性があります。

                          119.1 リトライ

                          定期課金の支払い失敗後、再度課金を行うことができます。
                          課金に失敗した日から指定した間隔日後に課金の再実行され、その後成功するまで設定された回数リトライを行います。

                          リトライの指定方法

                          リトライ間隔

                          リトライを行う間隔は定期課金毎に任意で指定できます。

                          指定方法処理
                          パラメータなどで間隔を指定する指定した間隔でリトライ
                          ※各実装方法でのページを参照してください
                          指定せずデフォルトで間隔が設定される定期課金の周期÷リトライ回数で計算された間隔でリトライ ※1 ※2
                          ※1 毎月(monthly)は課金月に関係なく30日として計算されます。
                          ※2 割り切れない場合は切り捨ての日数となります。(30日÷4=7.5日 →7日となります)

                          リトライ回数

                          リトライを行う回数は 管理画面>一般設定>決済サービス>全体設定 から設定できます。

                          リトライ時の挙動

                          一時停止中の定期課金を再開すると、リトライ回数(課金失敗回数)のカウントはリセットされ、設定した回数リトライが行われます。
                          リトライが成功した場合は期間(サイクル)を参照して次回課金日が設定されます。

                          初回を含め、設定回数以上のリトライが実行された場合、失敗後一時停止します。

                          例:
                          課金間隔:毎月
                          リトライ回数:3回
                          →リトライ間隔・・・10日(30日÷3)

                          状態挙動
                          リトライするも失敗した6/1:失敗
                          6/11:リトライ失敗
                          6/21:リトライ失敗→停止
                          リトライし成功した6/1:失敗
                          6/11:リトライ失敗
                          6/21:リトライ成功
                          7/1:次回課金

                          リトライ日

                          リトライ日は、「課金失敗日からリトライ間隔後の日付」と「指定した次回課金日」を参照して決定されます。

                          • 「指定した次回課金日」の方が未来:指定した次回課金日にリトライを実行
                          • 「課金失敗日からリトライ間隔後の日付」の方が未来:リトライ間隔後にリトライを実行

                          課金が失敗してリトライ待ちになった定期課金の次回課金日を変更しても、「課金失敗日からリトライ間隔後の日付」の方が未来の場合は次回課金日にリトライされないためご注意ください。
                          また、加盟店さまで作成済定期課金のリトライ間隔の変更は行えないため、リトライ間隔後より前に課金を実行させたい場合はサポートデスクへご連絡ください。

                          継続中の定期課金を任意で一時停止して再開した場合は、リトライ待ちであってもリトライ日が表示されず、次回課金日に課金を実行します。

                          119.2 停止・再開

                          停止

                          定期課金に停止処理をすると、その時点から継続的な課金を行わないようになります。
                          停止する方法は下記です。

                          方法設定(指定)
                          管理画面「一時停止」「永久停止」ボタンを押下
                          停止予約を設定
                          ※ページ下部に詳細を記載
                          API定期課金:UPDATEstatus:suspendedに更新
                          定期課金:CREATEschedule_settings.termination_mode:on_next_payment を指定
                          設定した回数リトライが失敗無し(自動で一時停止)
                          ※前ページで記載

                          停止予約について

                          定期課金作成時、もしくは作成後管理画面(またはAPI)で操作することで、
                          停止リクエストがあった時に次回課金実行日に定期課金を停止させるかどうかを設定することができます。
                          ※ここでの「停止リクエスト」は一時停止、永久停止の両方を指します

                          管理画面から変更する場合

                          「定期課金を停止する場合

                          定期課金の停止リクエストを受けた場合に停止するタイミングを設定できます。

                          選択肢処理
                          すぐに定期課金を停止即時停止
                          次回課金日に定期課金を停止リトライ含む次回の課金実行日に、課金せず停止

                          「次回課金実行日の処理(リトライ日含む)」

                          リトライ含む次回の課金実行日の処理を設定できます。
                          前の項目で「次回課金日に定期課金を停止」を指定した場合に選択できるようになります。

                          選択肢処理
                          そのまま課金停止リクエストがない場合は課金を継続
                          停止リクエストを受けた場合は、次回課金日に停止
                          定期課金を一時停止次回課金実行日に一時停止
                          定期課金を永久停止次回課金実行日に永久停止
                          ※デフォルトは「定期課金を一時停止」です
                          ※リトライ失敗が指定した回数に達した場合は、上記の設定にかかわらず失敗したタイミングに停止します

                          再開

                          一時停止している定期課金に限り、再開処理をすることができます。
                          再開方法については下記の表を確認してください。

                          方法処理
                          管理画面管理画面>定期課金詳細 から「再開」ボタンを押す
                          API定期課金:UPDATEstatus:currentに更新

                          再開後の挙動

                          再開する時、設定されていた次回課金日の状態によって挙動が異なります。

                          次回課金日の状態処理
                          再開日に対して次回課金日が未来
                          既に設定されている次回課金日に課金する
                          再開日に対して次回課金日が過去再開直後には課金されず、再開時から最も近い将来のサイクル日に次回課金日がセットされる
                          再開日が次回課金日と同日再開直後に即時課金される
                          ※当日に既に課金が実行されていれば課金されない

                          次回課金日が過去の場合の例:
                          毎月1日の毎月サイクルの定期課金
                          8/1:課金
                          8/15:一時停止(次回課金日は9/1の状態)
                          10/2:再開(直後には課金されない)
                          →次回課金日が自動で11/1にセットされる

                          再開時に次回課金日を指定する

                          前回課金の処理結果によって処理が分かれます。

                          • 前回課金が成功:指定した次回課金日で課金実行
                          • 前回課金が失敗:前ページの仕様に従い、課金実行日を決定

                          回数指定の定期課金を再開する

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

                          例:
                          毎月1日の毎月サイクル、5回の回数指定で、
                          8/15に停止し、10/2に再開した際の課金スケジュールは下記です。
                          未払いの9/1・10/1の分は後ろ倒し、1/1・2/1と支払い予定が追加されます(本来は12/1が最後の支払予定日)

                          停止しない停止して再開
                          8/18/1
                          9/1-(停止中)
                          10/1-(停止中)
                          11/111/1
                          12/1(完了)12/1
                          1/1
                          2/1(完了)

                          120. 問い合わせ完了

                          この度はUnivaPayへお問い合わせをいただき、誠にありがとうございます。

                          当社サポートデスクからの返信をしばらくお待ちください。

                          TOPに戻る

                          121. トランザクション - 概要

                          トランザクション履歴とは、実行済みの課金と返金のことです。
                          貸借のアクティビティにアクセスできるようになっています。

                          課金返金の一覧よりもこの閲覧方式を用いることを推奨します。

                          トランザクションオブジェクト

                          フィールドデータ型備考
                          merchant_idstring (UUID)課金が作成された加盟店のユニークID
                          merchant_namestring加盟店名
                          store_idstring (UUID)課金が作成された店舗のユニークID
                          store_namestring店舗名
                          resource_idstring (UUID)このエントリーが参照しているリソースのユニークID
                          typechargeであれば課金のID、refundであれば返金のID
                          amountnumber課金または返金の金額
                          currencystring (ISO-4217)トランザクションの通貨
                          amount_formattedstring補助単位があればその小数の値を含む課金か返金の金額
                          typestringchargeまたはrefundのいずれか
                          statusstringpendingsuccessfulfailederroredのいずれか
                          payment_typestring決済処理の支払い方法
                          modestringliveまたはtest
                          metadatajson課金に付与されたメタデータ
                          bank_transfer_latest_deposit_datestring (ISO-8601)銀行振込の場合 振込日
                          bank_transfer_payment_statusstring銀行振込の場合 決済のステータス
                          unpaid(未入金), insufficient(不足), exact(丁度), exceeded(超過) のいずれか
                          created_onstring (ISO-8601)トランザクションの日時

                          122. 支払い - GET

                          定期課金オブジェクトに対する支払いGETリクエストには以下が必要です。(括弧内は入力箇所)

                          • 店舗ID(URLの{storeId}部分)
                          • 定期課金ID(URLの{subscriptionId}部分)
                          • 課金ID(URLの{paymentId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId}/payments/{paymentId} \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/37ff5664-18c6-11e7-8221-ff4914d76afc/subscriptions/aaadee6a-18e3-11e7-a461-e3b078a7dc52/payments/11e89a0a-8cee-d660-b984-3fcaaed46e7c \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                            "id": "11e89a0a-8cee-d660-b984-3fcaaed46e7c",
                            "due_date": "2018-08-21",
                            "zone_id": "Asia/Tokyo",
                            "amount": 10000,
                            "currency": "JPY",
                            "amount_formatted": 10000,
                            "is_paid": false,
                            "is_last_payment": false,
                            "created_on": "2018-08-07T06:24:33.961256Z"
                          }

                          123. トランザクション - リクエスト

                          123.1 トランザクション - LIST

                          トランザクションオブジェクトに対するLISTリクエストには以下が必要です。(括弧内は入力箇所)

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

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/transaction_history \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --header 'Content-type: application/json'
                          すべての店舗を表示する
                          curl --request GET \
                          --url https://api.univapay.com/transaction_history \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --header 'Content-type: application/json'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。
                          全てがand条件で検索され、リストが作成されます。

                          フィールドデータ型備考
                          fromstring (ISO-8601)指定された日時以降でフィルタリングする
                          例:2024年1月23日の場合
                          2024-01-23T00:00:00Z
                          tostring (ISO-8601)指定された日時以前でフィルタリングする
                          例:2024年1月23日の場合
                          2024-01-23T00:00:00Z
                          searchstring課金ID, 返金ID, メタデータの情報、カード名義人名、カード名義人メールアドレス、カード番号下4桁のいずれかでフィルタリングする
                          typestringcharge,refundのいずれか
                          statusstring状態でフィルタリングする
                          課金もしくは返金の状態のいずれか
                          modestring実行モードでフィルタリングする
                          liveまたはtest

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/transaction_history?from=2024-06-01T00:00:00Z&to=2024-06-25T00:00:00Z \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          すべての店舗を表示する
                          curl --request GET \
                          --url https://api.univapay.com/transaction_history?from=2024-06-01T00:00:00Z&to=2024-06-25T00:00:00Z \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "items": [
                                  {
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "resource_id": "11ef327b-f037-10ce-b891-9b43076af963",
                                      "charge_id": null,
                                      "amount": 100,
                                      "currency": "JPY",
                                      "amount_formatted": 100,
                                      "type": "charge",
                                      "status": "successful",
                                      "metadata": {},
                                      "created_on": "2024-06-24T22:48:56.42805Z",
                                      "mode": "test",
                                      "merchant_name": "管理画面ガイド",
                                      "store_name": "管理画面ガイド_TEST店舗",
                                      "payment_type": "card",
                                      "user_data": {
                                          "type": "charge",
                                          "cardholder_name": "taro yamada",
                                          "cardholder_email_address": "test@test.com",
                                          "brand": "visa",
                                          "gateway": "test",
                                          "service_provider": "test",
                                          "refunds": []
                                      },
                                      "bank_transfer_payment_status": null,
                                      "bank_transfer_latest_deposit_date": null
                                  },
                                  {
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "resource_id": "11ef327b-efeb-2efc-adc5-ff26c8964860",
                                      "charge_id": null,
                                      "amount": 100,
                                      "currency": "JPY",
                                      "amount_formatted": 100,
                                      "type": "charge",
                                      "status": "successful",
                                      "metadata": {},
                                      "created_on": "2024-06-24T22:48:55.930755Z",
                                      "mode": "test",
                                      "merchant_name": "管理画面ガイド",
                                      "store_name": "管理画面ガイド_TEST店舗",
                                      "payment_type": "card",
                                      "user_data": {
                                          "type": "charge",
                                          "cardholder_name": "hanako yamada",
                                          "cardholder_email_address": "demo@demo.com",
                                          "brand": "master",
                                          "gateway": "test",
                                          "service_provider": "test",
                                          "refunds": []
                                      },
                                      "bank_transfer_payment_status": null,
                                      "bank_transfer_latest_deposit_date": null
                                  },
                          
                          <中略>
                          
                              ],
                              "has_more": true,
                              "total_hits": 99
                          }

                          124. 消費者によるお支払い方法の更新

                          消費者が自ら支払い方法を更新する方法はいくつか存在します。
                          新たに情報を登録して加盟店さまで既存の支払い情報と紐づけていただくか、既存の支払い情報を引き継いで更新する2つの場合に分かれます。

                          定期課金

                          消費者が利用するフォーム加盟店さまの提供方法
                          リンクフォームsubscriptionidを利用したフォームを準備する
                          ※詳細はこちら
                          ウィジェット・インラインフォームdata-subscription-idを利用したフォームを準備する
                          ※詳細はこちら
                          定期課金変更URL管理画面>定期課金>詳細 から、
                          カード情報変更フォームのURLを消費者に共有する
                          支払い情報の確認・変更画面別ページで設定、共有方法を記載

                          リカーリングトークン

                          消費者が利用するフォーム加盟店さまの提供方法
                          リンクフォームカード登録のみのフォームを準備する
                          ※メタデータやトークンIDなどで消費者を判別することが必須
                          ウィジェット・インラインフォームカード登録のみのフォームを準備する
                          ※メタデータやトークンIDなどで消費者を判別することが必須
                          支払い情報の確認・変更画面別ページで設定、共有方法を記載

                          以下のページでは「支払い情報の確認・変更画面」についての利用方法を説明します。

                          124.1 支払い情報の確認・変更画面

                          支払い情報の確認・変更画面では、消費者が定期課金のカード情報変更や停止、リカーリングトークンの追加や変更が可能です。
                          決済時やカード登録時に入力したメールアドレスをキーにして、定期課金やリカーリングトークンが表示されます。

                          確認・変更できる内容

                          定期課金情報

                          • 課金停止処理
                            定期課金を停止できます。回数制限付きの定期課金は停止できません。
                          • カード管理  
                            定期課金のカード情報を変更できます。設定で許可された方法から選択できます。
                            • 現在のカードで名義・有効期限の変更
                            • 新規カードを登録
                            • その他のカードを使う(作成済のリカーリングトークンから選択)
                              ※この方法の場合はメタデータなど変更前のトークン情報が引き継がれません。

                          お支払い方法

                          • 新規カードの登録
                            リカーリングトークンを作成できます。メタデータ等の情報は付与されません。
                          • 名義・期限の変更
                            作成済リカーリングトークンのカード名義/有効期限を変更できます。
                            変更処理を行うと、名義/有効期限が変更されたリカーリングトークンが新しく作成されます。
                            • 更新後のリカーリングトークン
                              更新前のリカーリングトークンの情報を引き継ぎます。(カード番号、メタデータ、メールアドレス等)
                            • 更新前のリカーリングトークン
                              ステータス:停止になり、管理画面から閲覧できます。過去に行われた課金の情報も引き続き閲覧できます。

                          関連ページ

                          詳細は下記のページで説明しています。

                          124.2 1.消費者の利用フロー

                          1.メール通知など、加盟店さまから案内された支払い情報の確認・変更画面URLをクリックする
                           ※消費者へのURLの共有方法は、「消費者へのURLの共有方法」のページを参照してください。

                          2.メールアドレスを入力する(URLにメールアドレスを未指定の場合のみ)

                          3.指定のメールアドレス宛に届いた認証コードを入力し、ログインする
                            (認証コードの有効期限:5分)

                          4.各変更/停止処理を行う

                          5.処理ごとに通知メールが届く(通知設定がONの場合のみ)

                          ※消費者の各処理が完了すると、処理ごとに加盟店さまに通知メールやウェブフックが送信されます。(通知メール設定およびウェブフックのトリガーがONの場合のみ)

                          124.3 2.加盟店さまの設定

                          変更・停止の許可設定

                          支払い情報の確認・変更画面から実行可能な処理は、管理画面の 一般設定>一般>全体設定>支払い情報の確認・変更画面から設定できます。

                          消費者側の制限

                          設定項目説明消費者の操作
                          消費者側で定期課金の表示定期課金情報タブを表示
                          消費者側でお支払い方法の表示お支払方法タブを表示
                          消費者側で定期課金の停止定期課金の停止を許可定期課金情報>課金停止処理
                          消費者側でカードの名義・有効期限の変更 リカーリングトークンのカード名義/有効期限更新を許可
                          ※定期課金情報タブからカード名義/有効期限を変更するには、定期課金のトークンがリカーリングである必要があります
                          定期課金情報 or お支払方法>カード管理>名義・期限の変更
                          消費者側で新規カード登録リカーリングトークンの新規作成を許可
                          ※定期課金情報タブでは、リカーリングトークンを作成しながら選択した定期課金のカード情報を更新します
                          定期課金情報 or お支払方法>カード管理>新規カード登録
                          消費者側でカードの削除リカーリングトークンの削除を許可
                          ※定期課金を利用中の場合は、削除できません
                          お支払方法>カード管理>カード削除
                          消費者側で他のカードの選択 登録済のリカーリングトークンの選択を許可定期課金情報>カード管理>その他のカードを使う

                          支払い情報の確認・変更画面のモード

                          支払い情報の確認・変更画面のモードを本番/テストから選択できます。
                          すべての支払い情報の確認・変更画面に対して指定したモードが反映されます。

                          124.4 3.消費者へのURLの共有方法

                          管理画面「通知メールテンプレート」

                          メールテンプレート内に${customer_refer_link}のパラメータがある場合、支払い情報の確認・変更画面のURLが表示されます。

                          デフォルトのメールテンプレートを利用する

                          一般設定>一般>通知の「定期課金イベント発生時に通知」をONにしてください。
                          上記設定によって、定期課金関連の通知メールにURLが表示されます。

                          ※メールテンプレートのデフォルト内容はこちらを参照してください

                          独自のメールテンプレートを作成する

                          「定期課金イベント発生時に通知」の設定次第で、通知メールテンプレートの利用方法が異なります。
                          ※都度課金と定期課金を併用している場合、「定期課金イベント発生時に通知」をONし、メールの文面を分けることを推奨します

                          定期課金イベント発生時に通知利用方法
                          ONテンプレート「決済完了通知」「決済失敗」に${customer_refer_link}を追加して作成してください。
                          ※都度課金の場合は、リカーリングトークンがある場合のみURLにログインできます
                          OFFページ下記説明を参照した上で作成してください。

                          前提として、定期課金関連のメールには二種類のテンプレートが存在します。
                          サブテンプレートの文面は、メインテンプレートの${subscription_payment_details:- }として反映されます。

                          種類テンプレート名
                          メインテンプレート・定期課金作成
                          ・定期課金決済
                          ・定期課金決済失敗
                          ・定期課金の一時停止
                          サブテンプレート・定期課金詳細
                          ・回数制限つき定期課金の詳細

                          用途に合わせてテンプレートにパラメータを追加してください。

                          作成するテンプレート利用方法
                          メイン・サブ両方を独自に作成するサブテンプレート内に${customer_refer_link}を、
                          メインテンプレートに${subscription_payment_details:- }を追加してください。
                          メインのみを独自に作成する${subscription_payment_details:- }を追加してください。
                          ${subscription_payment_details:- }を追加しない場合は、${customer_refer_link}を追加してください。

                          ${customer_refer_link}を追加可能なメールテンプレート

                          •  定期課金作成
                          •  定期課金決済
                          •  定期課金決済失敗
                          •  定期課金の一時停止
                          •  定期課金のカード情報変更の案内 ※開発中のため現在は利用不可
                          •  定期課金の詳細
                          •  回数制限付き定期課金の詳細
                          •  決済完了通知
                          •  決済失敗

                          手動でURLを作成・送信

                          下記URLに店舗IDを入力して消費者に共有することで、支払い情報の確認・変更画面へアクセスできます。
                          加盟店さま側でメールアドレスを指定したい場合は、メールアドレスも入力してください。

                          方法URL
                          メールアドレスを指定しないhttps://customer.univapay.com/stores/{店舗ID}
                          メールアドレスを指定するhttps://customer.univapay.com/stores/{店舗ID}?emailAddress={メールアドレス}
                          メールアドレスおよび表示させる定期課金IDを指定するhttps://customer.univapay.com/stores/{店舗ID}?emailAddress={メールアドレス}&subscriptionId={定期課金ID}

                          管理画面「定期課金」(開発中)

                          対象の定期課金を選択し「定期課金の管理画面」のメール送信ボタンを押すと、消費者のメールアドレス宛に「定期課金のカード情報変更の案内」の通知メールが送信されます。

                          125. 旧システムからの移行

                          このページは旧システム(https://cp.ccps.jp/の管理画面で利用できるサービス)を利用されている加盟店さまが対象です。
                          新システム(本ドキュメントで説明しているシステム)への移行対応についての案内を記載しています。

                          各ページでシステム移行の期限や、加盟店さまで必要な対応などについて記載しています。

                          125.1 システム移行のご案内

                          全体案内

                          完全移行期限

                          2025年3月31日

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

                          移行の理由

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

                          移行対象の決済サービス

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

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

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

                          移行完了までの流れ

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

                          移行に関してのご案内文

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

                          125.2 各機能の対比

                          旧システムで利用されていた機能と類似した機能、仕様についての対比表です。
                          詳細については各リンク先のページ及び、利用開始までの流れを記載した初期設定のページを確認して下さい。

                          旧システム旧システムの仕様・機能新システム新システムの仕様・機能
                          決済番号決済毎に自動で発番される数字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」
                          決済完了メールのメール設定・オプション設定で商品毎に設定が可能通知メールテンプレート・商品毎のメール設定は商品のメタデータを活用
                          ・商品にメタデータを付与することでカスタマイズ
                          ・何も登録していない場合はデフォルトのメールを送信

                          125.3 パラメータの対比

                          リクエスト時のパラメータの比較表です。
                          主にクレジットカード決済に関連するものを記載しています。
                          詳細はパラメータについて説明している各ページ及び、利用開始までの流れを記載した初期設定のページを確認して下さい。

                          項目旧システム新システム
                          ウィジェット方式
                          インライン方式の場合
                          新システム
                          API方式の場合
                          店舗IDsiddata-app-id
                          ※アプリトークンで店舗を判断し認証
                          Authorization: Bearer {secret}.{jwt}
                          ※アプリトークンとシークレットで店舗を判断し認証
                          ジョブタイプjob
                          仮売上:AUTH
                          実売上:SALES
                          有効性チェック:CHECK
                          など
                          オーソリ&キャプチャ:data-capture
                          セキュリティコード認証:data-cvv-authorize
                          など
                          オーソリ&キャプチャ:capture
                          セキュリティコード認証:cvv_authorize.enabled
                          など
                          サービス種別svid
                          クレジット:1
                          data-payment-methods
                          クレジット:card
                          payment_type
                          クレジット:card
                          処理種別ptype
                          1=トークン決済(memberpay.aspxのみ)
                          1=ゲートウェイ決済
                          payment.aspxのみ PCI DSS準拠環境以外では禁止)
                          2=3Dセキュア認証をするゲートウェイ決済
                          3=リンク方式
                          4=リンク方式(3DS)
                          なしなし
                          トークンタイプなしdata-token-type
                          one_time(デフォルト)
                          recurring
                          subscription
                          data-checkoutと組み合わせる
                          type
                          one_time
                          recurring
                          subscription
                          チェックアウトタイプなしdata-checkout
                          トランザクショントークンを作成するだけ:token
                          トランザクショントークンと課金の両方を作成する:payment
                          data-token-typeと組み合わせる
                          なし
                          ※リクエスト時
                          ~/tokens」「~/charges」で指定
                          店舗オーダー番号
                          (顧客ID)
                          soddata-univapay-reference-idunivapay-reference-id
                          トークンIDupcmemberidなしtransaction_token_id
                          商品金額siam1data-amountamount
                          通貨なしdata-currencycurrency
                          自動課金周期actp1
                          2=毎週 3=隔週
                          4=毎月 5=隔月
                          6=3ヶ月 7=6ヶ月
                          8=1年
                          20=日数指定
                          21=日付指定
                          22=開始日指定(月周期)
                          23=開始日指定(日周期)
                          24=翌月日付指定
                          data-subscription-period
                          daily(毎日)
                          weekly(毎週)
                          biweekly(隔週)
                          monthly(毎月)
                          bimonthly(隔月)
                          quarterly(3ヶ月)
                          semiannually(6ヶ月)
                          annually(毎年)
                          P●D(〇日毎)
                          P●M(〇ヶ月毎)
                          period
                          daily(毎日)
                          weekly(毎週)
                          biweekly(隔週)
                          monthly(毎月)
                          bimonthly(隔月)
                          quarterly(3ヶ月)
                          semiannually(6ヶ月)
                          annually(毎年)

                          cyclical_period
                          P●D,P●M(〇日、〇ヶ月など)
                          (ISO-8601 Duration)
                          自動課金日付acdc1
                          ※自動課金周期 に「20」「21」「22」「23」「24」指定時
                          20=X日周期
                          21=X日付
                          22=X日後開始
                          23=X日周期
                          24=翌月日付指定
                          data-subscription-start
                          ※開始日指定:yyyy-mm-dd形式の日付指定
                          schedule_settings.start_on
                          ※開始日指定:yyyy-mm-dd形式の日付指定
                          自動課金間隔acmc1
                          ※自動課金周期 に「21」「22」「23」「24」指定時
                          21=(指定値)✕ ヶ月毎 
                          22=(指定値)✕ ヶ月毎
                          23=X日後開始 
                          24=(指定値)✕ ヶ月毎
                          なしなし
                          自動課金額acam1data-amount
                          data-subscription-initial-amount

                          ※初回課金金額
                          data-subscription-qty
                          ※金額指定の回数制限を利用する場合
                          amount
                          initial_amount
                          ※初回課金金額
                          subscriptiont_plan.fixed_cycle_amount
                          ※金額指定の回数制限を利用する場合
                          自動課金回数acrm1
                          0」指定・省略時=無制限
                          data-subscription-plan
                          fixed_cycles=固定の回数の支払い
                          fixed_cycle_amount=都度の課金額を固定
                          subscription_plan.plan_type
                          fixed_cycles=固定の回数の支払い
                          fixed_cycle_amount=都度の課金額を固定
                          自動課金リトライ回数acrt1
                          未指定時は3回
                          なし
                          ※3回(初回含まないため実質2回。管理画面で変更可)
                          なし
                          ※3回(初回含まないため実質2回。管理画面で変更可)
                          自動課金リトライ周期acrd1
                          (指定値)✕ 日
                          data-subscription-retry-intervalschedule_settings.retry_interval
                          支払い回数scdata-allow-card-installments
                          (プルダウンで消費者に支払い回数を表示させる)

                          data-installment-qty
                          (data-installment-plan= “fixed_cycles”の場合)
                          installment_plan.fixed_cycles
                          (installment_plan.plan_typefixed_cyclesの場合)
                          店舗復帰URLコードsucd
                          ※事前に当社コントロールパネルで登録必要
                          data-auto-submit
                          <form action=”<任意のURL>”>に指定
                          なし
                          決済番号pidcharge_idなし
                          リクエスト時
                          ~/charges/{id}/~」で指定
                          自動課金番号acidsubscription_idなし
                          リクエスト時
                          ~subscriptions/{subscriptionId}
                          で指定
                          メールアドレスemdata-emailemail
                          商品コードsicd1data-product-codesなし

                          決済結果通知のパラメータ対比表

                          項目旧システム
                          (キックバック)
                          新システム
                          (ウェブフック)
                          決済番号pidid
                          処理結果rststatus
                          管理番号(モードの判断)ap
                          ※本番モード時は「決済番号」
                          ※テストモード時は「TestMode」
                          mode
                          ※テストモード時は「test
                          エラーコードec
                          ※成功時:ER000000000
                          “error”: {“message””details”}
                          店舗オーダー番号sodunivapay-reference-id
                          決済金額合計tacharged_amount
                          ジョブタイプjobtransaction_token_type
                          自動課金周期actpperiod
                          自動課金日付acdcstartOn

                          126. リトライ

                          定期課金の支払い失敗後、再度課金を行うことができます。
                          課金に失敗した日から指定した間隔日後に課金の再実行され、その後成功するまで設定された回数リトライを行います。

                          リトライの指定方法

                          リトライ間隔

                          リトライを行う間隔は定期課金毎に任意で指定できます。

                          指定方法処理
                          パラメータなどで間隔を指定する指定した間隔でリトライ
                          ※各実装方法でのページを参照してください
                          指定せずデフォルトで間隔が設定される定期課金の周期÷リトライ回数で計算された間隔でリトライ ※1 ※2
                          ※1 毎月(monthly)は課金月に関係なく30日として計算されます。
                          ※2 割り切れない場合は切り捨ての日数となります。(30日÷4=7.5日 →7日となります)

                          リトライ回数

                          リトライを行う回数は 管理画面>一般設定>決済サービス>全体設定 から設定できます。

                          リトライ時の挙動

                          一時停止中の定期課金を再開すると、リトライ回数(課金失敗回数)のカウントはリセットされ、設定した回数リトライが行われます。
                          リトライが成功した場合は期間(サイクル)を参照して次回課金日が設定されます。

                          初回を含め、設定回数以上のリトライが実行された場合、失敗後一時停止します。

                          例:
                          課金間隔:毎月
                          リトライ回数:3回
                          →リトライ間隔・・・10日(30日÷3)

                          状態挙動
                          リトライするも失敗した6/1:失敗
                          6/11:リトライ失敗
                          6/21:リトライ失敗→停止
                          リトライし成功した6/1:失敗
                          6/11:リトライ失敗
                          6/21:リトライ成功
                          7/1:次回課金

                          リトライ日

                          リトライ日は、「課金失敗日からリトライ間隔後の日付」と「指定した次回課金日」を参照して決定されます。

                          • 「指定した次回課金日」の方が未来:指定した次回課金日にリトライを実行
                          • 「課金失敗日からリトライ間隔後の日付」の方が未来:リトライ間隔後にリトライを実行

                          課金が失敗してリトライ待ちになった定期課金の次回課金日を変更しても、「課金失敗日からリトライ間隔後の日付」の方が未来の場合は次回課金日にリトライされないためご注意ください。
                          また、加盟店さまで作成済定期課金のリトライ間隔の変更は行えないため、リトライ間隔後より前に課金を実行させたい場合はサポートデスクへご連絡ください。

                          継続中の定期課金を任意で一時停止して再開した場合は、リトライ待ちであってもリトライ日が表示されず、次回課金日に課金を実行します。

                          127. 支払い - LIST

                          定期課金オブジェクトに対する支払いLISTリクエストには以下が必要です。(括弧内は入力箇所)

                          • 店舗ID(URLの{storeId}部分)
                          • 定期課金ID(URLの{subscriptionId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/subscriptions/{subscriptionId}/payments \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/37ff5664-18c6-11e7-8221-ff4914d76afc/subscriptions/aaadee6a-18e3-11e7-a461-e3b078a7dc52/payments \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                            "items": [
                              {
                                "id": "11e89a0a-8cee-d660-b984-3fcaaed46e7c",
                                "due_date": "2018-08-21",
                                "zone_id": "Asia/Tokyo",
                                "amount": 10000,
                                "currency": "JPY",
                                "amount_formatted": 10000,
                                "is_paid": false,
                                "is_last_payment": false,
                                "created_on": "2018-08-07T06:24:33.961256Z",
                                "updated_on": "2018-08-07T06:24:33.961256Z"
                              },
                              {
                                "id": "11e89a0a-8cc5-2662-9460-2b14b1a601ba",
                                "due_date": "2018-08-07",
                                "zone_id": "Asia/Tokyo",
                                "amount": 1000,
                                "currency": "JPY",
                                "amount_formatted": 1000,
                                "is_paid": true,
                                "is_last_payment": false,
                                "created_on": "2018-08-07T06:24:33.646223Z",
                                "updated_on": "2018-08-07T06:24:33.88776Z"
                              }
                            ],
                            "has_more": false
                          }

                          128. 加盟店 - 概要

                          加盟店リソースはアカウントの所有者についての情報と、この加盟店で作成される店舗のデフォルト設定を表示します。

                          加盟店オブジェクト

                          フィールド名データ型備考
                          idUUID加盟店を識別するID。一般的に merchantId として使われます。
                          namestring加盟店の名称
                          emailstring加盟店のメールアドレス
                          verifiedboolean加盟店が審査済みかどうか
                          created_onstring (ISO-8601)加盟店の作成日時
                          configuration.percent_feenumberこの店舗でのトランザクションごとの手数料率
                          ※実際の精算上の金額が正確に反映されていない場合があります
                          configuration.flat_feesnumberこの店舗の固定トランザクション費用
                          ※実際の精算上の金額が正確に反映されていない場合があります
                          configuration.logo_urlstringストアロゴのURL
                          configuration.countrystringこの店舗の拠点となる国。 「外国の」カードと見なされるものに影響する
                          configuration.languagestringデフォルトの言語
                          configuration.display_time_zonestringデフォルトの表示タイムゾーン
                          configuration.min_transfer_payoutstring登録された銀行口座への送金前に積み立てられた最低金額
                          configuration.maximum_charge_amountsstringデフォルトの最大課金額
                          configuration.user_transactions_configuration.enabledbooleanトランザクションで加盟店にメールを送信するかどうか
                          configuration.user_transactions_configuration.notify_customerbooleanトランザクションで顧客にメールを送信するかどうか
                          configuration.card_configuration.enabledbooleanカードが利用可能か
                          configuration.card_configuration.debit_enabledbooleanデビットカードが利用可能か
                          configuration.card_configuration.prepaid_enabledbooleanプリペイドカードが利用可能か
                          configuration.card_configuration.forbidden_card_brandsarray[string]このストアでの使用が許可されていないカードブランドのリスト
                          configuration.card_configuration.allowed_countries_by_iparray[string]IPアドレスが課金を許可されていない国のリスト
                          configuration.card_configuration.foreign_cards_allowedboolean外国のカードを許可するかどうか。 外国のカードとは、その国がストアの国と同じではないカードを指す。
                          configuration.card_configuration.fail_on_new_emailboolean以前に特定のメールアドレスで使用されたカードを許可するかどうか。 trueの場合、別のメールアドレスで使用されているカードは拒否される。
                          configuration.card_configuration.allow_empty_cvvbooleanカード払いのCVVチェックを有効にするかどうか
                          configuration.card_configuration.card_limit.amountnumber定義された期間、カードごとに利用を制限する金額
                          configuration.card_configuration.card_limit.currencystring (ISO-4217)amountが定義されている通貨
                          configuration.card_configuration.card_limit.durationstring (ISO-8601)string (ISO-8601)
                          amountに対する期間
                          configuration.qr_scan_configuration.enabledbooleanQRコードが利用可能か
                          configuration.qr_scan_configuration.forbidden_qr_scan_gatewaysarray[string]QRコード決済の処理に使用されない決済ゲートウェイのリスト
                          configuration.convenience_configuration.enabledbooleanコンビニ決済が利用可能か
                          configuration.recurring_token_configuration.recurring_typestring使用可能なリカーリングトークンの種類
                          none – 使用できない
                          bounded – トランザクショントークンを作成するときにusage_periodパラメーターとして定義された期間に制限される
                          configuration.recurring_token_configuration.charge_wait_periodstring (ISO-8601)リカーリングトークンを再利用できる間隔
                          configuration.recurring_token_configuration.card_charge_cvv_confirmation.enabledbooleanリカーリングトークンを使用するときに、この店舗にCVV確認が必要かどうか
                          configuration.recurring_token_configuration.card_charge_cvv_confirmation.thresholdarray[MoneyAmount]CVV確認せずに課金可能な、店舗のデフォルト通貨での最大金額
                          configuration.security_configuration.inspect_suspicious_login_afterstring (ISO-8601)
                          疑わしいログイン通知が加盟店に送信されるまでの期
                          configuration.security_configuration.refund_percent_limitnumber加盟店が行った合計課金額から返金可能な金額の割合
                          configuration.security_configuration.limit_charge_by_card_configuration.quantity_of_chargesnumberduration_windowで指定された期間内に行うことができる課金の数
                          configuration.security_configuration.limit_charge_by_card_configuration.duration_windowstring (ISO-8601)課金可能な期間
                          configuration.installments_configuration.enabledboolean分割払いが有効かどうか
                          configuration.installments_configuration.min_charge_amountnumberデフォルト通貨でのサイクルごとの最小課金額
                          configuration.installments_configuration.max_payout_periodstring (ISO-8601)分割払いの最大期間
                          configuration.installments_configuration.failed_cycles_to_cancelnumber分割払いが自動的にキャンセルされるまでの失敗した課金数
                          configuration.card_brand_percent_fees.visanumberVisaカードの手数料率
                          configuration.card_brand_percent_fees.american_expressnumberアメリカン・エキスプレスカードの手数料率
                          configuration.card_brand_percent_fees.mastercardnumberMastercardの手数料率
                          configuration.card_brand_percent_fees.maestronumberMaestroカードの手数料率
                          configuration.card_brand_percent_fees.discovernumberDiscoverカードの手数料率
                          configuration.card_brand_percent_fees.jcbnumberJCBカードの手数料率
                          configuration.card_brand_percent_fees.diners_clubnumberダイナーズクラブカードの手数料率
                          configuration.card_brand_percent_fees.union_paynumberUnionPayカードの手数料率

                          MoneyAmount

                          フィールド名データ型備考
                          amountnumber小数点以下の金額
                          currencystring (ISO-4217)ISO-4217形式の通貨

                          129. 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)の決済情報の生成に失敗した

                          130. 返金 - CREATE

                          返金オブジェクトに対するCREATEリクエストには以下が必要です。(括弧内は入力箇所)

                          • 店舗ID(URLの{storeId}部分)
                          • 課金ID(URLの{chargeId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request POST \
                          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/refunds \
                          --header 'Authorization: Bearer {secret}.{jwt}' \
                          --header 'content-type: application/json' \

                          利用できるパラメータ

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

                          フィールド
                          赤字は必須
                          は条件付き必須
                          データ型備考
                          amountnumber課金金額以下の返金金額
                          currencystring (ISO-4217) ISO 4217の通貨コードで指定
                          reasonstring返金理由
                          fraudduplicatecustomer_requestのいずれか
                          messagestring返金の詳細理由
                          metadatajson自由に設定可能
                          詳細はメタデータを参照

                          Bodyの記述例

                          curl --request POST \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c3-3cfe-3bc0-abed-0bb96f792078/refunds \
                          --header 'Authorization: Bearer {secret}.{jwt}' \
                          --header 'content-type: application/json' \
                          --data '{
                            "amount": 250,
                            "currency": "JPY",
                            "reason": "customer_request",
                            "message": "15 percent off",
                            "metadata": {
                                "coupon": "VIP007"
                            }
                          }'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef32c8-c721-823a-ba45-77212da778fa",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
                              "status": "pending",
                              "amount": 250,
                              "currency": "JPY",
                              "amount_formatted": 250,
                              "reason": "customer_request",
                              "message": "15 percent off",
                              "error": null,
                              "metadata": {
                                  "coupon": "VIP007"
                              },
                              "mode": "test",
                              "created_on": "2024-06-25T07:58:58.748326Z"
                          }

                          131. 停止・再開

                          停止

                          定期課金に停止処理をすると、その時点から継続的な課金を行わないようになります。
                          停止する方法は下記です。

                          方法設定(指定)
                          管理画面「一時停止」「永久停止」ボタンを押下
                          停止予約を設定
                          ※ページ下部に詳細を記載
                          API定期課金:UPDATEstatus:suspendedに更新
                          定期課金:CREATEschedule_settings.termination_mode:on_next_payment を指定
                          設定した回数リトライが失敗無し(自動で一時停止)
                          ※前ページで記載

                          停止予約について

                          定期課金作成時、もしくは作成後管理画面(またはAPI)で操作することで、
                          停止リクエストがあった時に次回課金実行日に定期課金を停止させるかどうかを設定することができます。
                          ※ここでの「停止リクエスト」は一時停止、永久停止の両方を指します

                          管理画面から変更する場合

                          「定期課金を停止する場合

                          定期課金の停止リクエストを受けた場合に停止するタイミングを設定できます。

                          選択肢処理
                          すぐに定期課金を停止即時停止
                          次回課金日に定期課金を停止リトライ含む次回の課金実行日に、課金せず停止

                          「次回課金実行日の処理(リトライ日含む)」

                          リトライ含む次回の課金実行日の処理を設定できます。
                          前の項目で「次回課金日に定期課金を停止」を指定した場合に選択できるようになります。

                          選択肢処理
                          そのまま課金停止リクエストがない場合は課金を継続
                          停止リクエストを受けた場合は、次回課金日に停止
                          定期課金を一時停止次回課金実行日に一時停止
                          定期課金を永久停止次回課金実行日に永久停止
                          ※デフォルトは「定期課金を一時停止」です
                          ※リトライ失敗が指定した回数に達した場合は、上記の設定にかかわらず失敗したタイミングに停止します

                          再開

                          一時停止している定期課金に限り、再開処理をすることができます。
                          再開方法については下記の表を確認してください。

                          方法処理
                          管理画面管理画面>定期課金詳細 から「再開」ボタンを押す
                          API定期課金:UPDATEstatus:currentに更新

                          再開後の挙動

                          再開する時、設定されていた次回課金日の状態によって挙動が異なります。

                          次回課金日の状態処理
                          再開日に対して次回課金日が未来
                          既に設定されている次回課金日に課金する
                          再開日に対して次回課金日が過去再開直後には課金されず、再開時から最も近い将来のサイクル日に次回課金日がセットされる
                          再開日が次回課金日と同日再開直後に即時課金される
                          ※当日に既に課金が実行されていれば課金されない

                          次回課金日が過去の場合の例:
                          毎月1日の毎月サイクルの定期課金
                          8/1:課金
                          8/15:一時停止(次回課金日は9/1の状態)
                          10/2:再開(直後には課金されない)
                          →次回課金日が自動で11/1にセットされる

                          再開時に次回課金日を指定する

                          前回課金の処理結果によって処理が分かれます。

                          • 前回課金が成功:指定した次回課金日で課金実行
                          • 前回課金が失敗:前ページの仕様に従い、課金実行日を決定

                          回数指定の定期課金を再開する

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

                          例:
                          毎月1日の毎月サイクル、5回の回数指定で、
                          8/15に停止し、10/2に再開した際の課金スケジュールは下記です。
                          未払いの9/1・10/1の分は後ろ倒し、1/1・2/1と支払い予定が追加されます(本来は12/1が最後の支払予定日)

                          停止しない停止して再開
                          8/18/1
                          9/1-(停止中)
                          10/1-(停止中)
                          11/111/1
                          12/1(完了)12/1
                          1/1
                          2/1(完了)

                          132. 加盟店 - リクエスト

                          132.1 加盟店 - GET

                          加盟店オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

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

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/me \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          記述例

                          curl --request GET \
                          --url http://api.univapay.com/me \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11edf541-548f-ad70-8bc2-d34ca468c664",
                              "verification_data_id": "11edf541-54f3-2a58-9afe-b372c6f5fc0a",
                              "name": "管理画面ガイド",
                              "email": "merchant@test.com",
                              "notification_email": "merchant@test.com",
                              "verified": true,
                              "created_on": "2023-05-18T06:00:45.870218Z",
                              "configuration": {
                                  "percent_fee": 3.400,
                                  "flat_fees": [
                                      {
                                          "amount": 30,
                                          "amount_formatted": 30,
                                          "currency": "JPY"
                                      }
                                  ],
                                  "logo_url": null,
                                  "country": null,
                                  "language": null,
                                  "display_time_zone": null,
                                  "min_transfer_payout": null,
                                  "minimum_charge_amounts": null,
                                  "maximum_charge_amounts": null,
                                  "transfer_schedule": {
                                      "wait_period": "P7D",
                                      "period": "monthly",
                                      "full_period_required": null,
                                      "day_of_week": null,
                                      "week_of_month": null,
                                      "day_of_month": null,
                                      "weekly_closing_day": null,
                                      "weekly_payout_day": null
                                  },
                                  "user_transactions_configuration": {
                                      "enabled": true,
                                      "notify_customer": true,
                                      "notify_on_test": true,
                                      "notify_on_recurring_token_creation": true,
                                      "notify_on_recurring_token_cvv_failed": true,
                                      "notify_on_webhook_failure": true,
                                      "notify_on_webhook_disabled": true,
                                      "notify_user_on_failed_transactions": true,
                                      "notify_customer_on_failed_transactions": true,
                                      "notify_user_on_convenience_instructions": null,
                                      "notify_on_subscriptions": true,
                                      "notify_on_authorizations": true,
                                      "notify_on_cvv_authorizations": false,
                                      "notify_on_cancels": true,
                                      "customer_refer_link_enabled": true,
                                      "notify_on_convenience_expiry": true
                                  },
                                  "recurring_token_configuration": {
                                      "recurring_type": "infinite",
                                      "charge_wait_period": "PT20S",
                                      "card_charge_cvv_confirmation": {
                                          "enabled": true,
                                          "threshold": [
                                              {
                                                  "amount": 10000,
                                                  "amount_formatted": 10000,
                                                  "currency": "JPY"
                                              }
                                          ]
                                      }
                                  },
                                  "security_configuration": {
                                      "card_charge_cooldown": null,
                                      "subscription_cooldown": null,
                                      "idempotent_card_charge_cooldown": null,
                                      "idempotent_subscription_cooldown": null,
                                      "restrict_ip_after_failed_charge": {
                                          "enabled": true,
                                          "count": null,
                                          "cooldown": null
                                      },
                                      "inspect_suspicious_login_after": "P20D",
                                      "refund_percent_limit": null,
                                      "limit_charge_by_card_configuration": null,
                                      "confirmation_required": null,
                                      "min_refund_threshold": 5,
                                      "limit_refund_by_sales": {
                                          "enabled": true,
                                          "period": "daily",
                                          "rolling_window": false
                                      }
                                  },
                                  "checkout_configuration": {
                                      "ec_email": {
                                          "enabled": true
                                      },
                                      "ec_products": {
                                          "enabled": true
                                      }
                                  },
                                  "installments_configuration": {
                                      "enabled": null,
                                      "card_processor": {
                                          "revolving": null,
                                          "fixed_cycle": null
                                      },
                                      "supported_payment_types": null,
                                      "min_charge_amount": null,
                                      "max_payout_period": null,
                                      "only_with_processor": true
                                  },
                                  "subscription_plan_configuration": {
                                      "enabled": null,
                                      "fixed_cycle": null,
                                      "fixed_cycle_amount": null,
                                      "supported_payment_types": null,
                                      "min_charge_amount": null,
                                      "max_payout_period": null
                                  },
                                  "card_brand_percent_fees": {
                                      "visa": 3.300,
                                      "american_express": 3.500,
                                      "mastercard": 3.300,
                                      "maestro": null,
                                      "discover": null,
                                      "jcb": 3.500,
                                      "diners_club": 3.300,
                                      "union_pay": null,
                                      "private_label": null
                                  },
                                  "subscription_configuration": {
                                      "enabled": null,
                                      "failed_charges_to_cancel": null,
                                      "suspend_on_cancel": null,
                                      "allow_merchant_amount_patch": true,
                                      "allow_merchant_due_date_patch": true
                                  },
                                  "customer_management_configuration": {
                                      "enabled": true,
                                      "default_roles": null,
                                      "default_mode": null
                                  },
                                  "descriptor_provided_configuration": null,
                                  "card_configuration": {
                                      "enabled": null,
                                      "debit_enabled": true,
                                      "prepaid_enabled": true,
                                      "debit_authorization_enabled": null,
                                      "prepaid_authorization_enabled": null,
                                      "forbidden_card_brands": null,
                                      "allowed_countries_by_ip": null,
                                      "foreign_cards_allowed": true,
                                      "fail_on_new_email": null,
                                      "card_limit": null,
                                      "allow_empty_cvv": false,
                                      "only_direct_currency": false,
                                      "three_ds_required": null,
                                      "three_ds_address_required": null,
                                      "allow_direct_token_creation": true
                                  },
                                  "qr_scan_configuration": {
                                      "enabled": true,
                                      "forbidden_qr_scan_gateways": null
                                  },
                                  "convenience_configuration": {
                                      "enabled": true,
                                      "expiration_time_shift": {
                                          "value": "13:00:00+09:00",
                                          "enabled": false
                                      }
                                  },
                                  "paidy_configuration": {
                                      "enabled": null
                                  },
                                  "qr_merchant_configuration": {
                                      "enabled": true
                                  },
                                  "online_configuration": {
                                      "enabled": false
                                  },
                                  "bank_transfer_configuration": {
                                      "enabled": true,
                                      "expiration_time_shift": {
                                          "value": "11:00:00+09:00",
                                          "enabled": true
                                      },
                                      "default_extension_period": "PT24H",
                                      "charge_request_notification_enabled": true,
                                      "charge_request_canceled_notification_enabled": true,
                                      "charge_expired_notification_enabled": true,
                                      "deposit_received_notification_enabled": true,
                                      "deposit_insufficient_notification_enabled": true,
                                      "deposit_exceeded_notification_enabled": true,
                                      "extension_notification_enabled": true,
                                      "remind_notification_enabled": true
                                  },
                                  "platform_credentials_enabled": false,
                                  "tagged_platform_credentials_enabled": false
                              },
                              "tms_merchant_data": null
                          }

                          133. 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

                          134. 返金 - GET

                          返金オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

                          • 店舗ID(URLの{storeId}部分)
                          • 課金ID(URLの{chargeId}部分)
                          • 返金ID(URLの{id}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/refunds/{id} \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。

                          フィールド名データ型備考
                          pollingbooleanステータスが pending(初期ステータス)から別のステータスに変更されるまで、課金のステータスを内部でポーリングするようにAPIに指示する

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c3-3cfe-3bc0-abed-0bb96f792078/refunds/11ef32c8-c721-823a-ba45-77212da778fa \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef32c8-c721-823a-ba45-77212da778fa",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
                              "status": "successful",
                              "amount": 250,
                              "currency": "JPY",
                              "amount_formatted": 250,
                              "reason": "customer_request",
                              "message": "15 percent off",
                              "error": null,
                              "metadata": {
                                  "coupon": "VIP007"
                              },
                              "mode": "test",
                              "created_on": "2024-06-25T07:58:58.748326Z"
                          }

                          135. 支払い情報の確認・変更画面

                          支払い情報の確認・変更画面では、消費者が定期課金のカード情報変更や停止、リカーリングトークンの追加や変更が可能です。
                          決済時やカード登録時に入力したメールアドレスをキーにして、定期課金やリカーリングトークンが表示されます。

                          確認・変更できる内容

                          定期課金情報

                          • 課金停止処理
                            定期課金を停止できます。回数制限付きの定期課金は停止できません。
                          • カード管理  
                            定期課金のカード情報を変更できます。設定で許可された方法から選択できます。
                            • 現在のカードで名義・有効期限の変更
                            • 新規カードを登録
                            • その他のカードを使う(作成済のリカーリングトークンから選択)
                              ※この方法の場合はメタデータなど変更前のトークン情報が引き継がれません。

                          お支払い方法

                          • 新規カードの登録
                            リカーリングトークンを作成できます。メタデータ等の情報は付与されません。
                          • 名義・期限の変更
                            作成済リカーリングトークンのカード名義/有効期限を変更できます。
                            変更処理を行うと、名義/有効期限が変更されたリカーリングトークンが新しく作成されます。
                            • 更新後のリカーリングトークン
                              更新前のリカーリングトークンの情報を引き継ぎます。(カード番号、メタデータ、メールアドレス等)
                            • 更新前のリカーリングトークン
                              ステータス:停止になり、管理画面から閲覧できます。過去に行われた課金の情報も引き続き閲覧できます。

                          関連ページ

                          詳細は下記のページで説明しています。

                          136. 店舗 - 概要

                          店舗は、決済を分類したい場合や取引ごとの設定を分けたい場合などに用いられます。トランザクショントークンは、アプリケーショントークン経由でストアに紐づいています。

                          店舗オブジェクト

                          フィールドデータ型備考
                          idUUID店舗を区別するUUID
                          namestring店舗の表示名
                          emailstring店舗のメールアドレス
                          verifiedboolean店舗が審査済みかどうか
                          created_onstring (ISO-8601)店舗が作成された時間(ミリ杪, UNIX時間)
                          configuration.percent_feenumberこの店舗でのトランザクションごとの手数料率
                          ※実際の精算上の金額が正確に反映されていない場合があります
                          configuration.flat_feesnumberこの店舗の固定トランザクション費用
                          ※実際の精算上の金額が正確に反映されていない場合があります
                          configuration.logo_urlstringストアロゴのURL
                          configuration.countrystringこの店舗の拠点となる国
                          「外国の」カードと見なされるものに影響する
                          configuration.languagestringデフォルトの言語
                          configuration.display_time_zonestringデフォルトの表示タイムゾーン
                          configuration.min_transfer_payoutstring登録された銀行口座に振り込む前に蓄積された資金の最低額
                          configuration.maximum_charge_amountsstringデフォルトの最大課金額
                          configuration.user_transactions_configuration.enabledbooleanトランザクションで加盟店にメールを送信するかどうか
                          configuration.user_transactions_configuration.notify_customerbooleanトランザクションで消費者にメールを送信するかどうか
                          configuration.card_configuration.enabledbooleanカードが利用可能か
                          configuration.card_configuration.debit_enabledbooleanデビットカードが利用可能か
                          configuration.card_configuration.prepaid_enabledbooleanプリペイドカードが利用可能か
                          configuration.card_configuration.forbidden_card_brandsarray[string]この店舗での使用が許可されていないカードブランドのリスト
                          configuration.card_configuration.allowed_countries_by_iparray[string]IPアドレスが課金を許可されていない国のリスト
                          configuration.card_configuration.foreign_cards_allowedboolean外国のカードを許可するかどうか
                          外国のカードとは、その国が店舗の国と同じではないカード
                          configuration.card_configuration.fail_on_new_emailboolean以前に特定のメールアドレスで使用されたカードを許可するかどうか
                          trueの場合、別のメールアドレスで使用されているカードは拒否される
                          configuration.card_configuration.allow_empty_cvvbooleanカード払いのCVVチェックを有効にするかどうか
                          configuration.card_configuration.card_limit.amountnumber定義された期間、カードごとに利用を制限する金額
                          configuration.card_configuration.card_limit.currencystring (ISO-4217)amountが定義されている通貨
                          configuration.card_configuration.card_limit.durationstring (ISO-8601)amountに対する期間
                          configuration.qr_scan_configuration.enabledbooleanQRコードが利用可能か
                          configuration.qr_scan_configuration.forbidden_qr_scan_gatewaysarray[string]QRコード決済の処理に使用されない決済ゲートウェイのリスト
                          configuration.convenience_configuration.enabledbooleanコンビニ決済が利用可能か
                          configuration.recurring_token_configuration.recurring_typestring使用可能なリカーリングトークンの種類
                          none – 使用できない
                          bounded – トランザクショントークンを作成するときにusage_periodパラメーターとして定義された期間に制限される
                          configuration.recurring_token_configuration.charge_wait_periodstring (ISO-8601)リカーリングトークンを再利用できる間隔
                          configuration.recurring_token_configuration.card_charge_cvv_confirmation.enabledbooleanリカーリングトークンを使用するときに、この店舗にCVV確認が必要かどうか
                          configuration.recurring_token_configuration.card_charge_cvv_confirmation.thresholdarray[MoneyAmount]CVV確認せずに課金可能な、店舗のデフォルト通貨での最大金額
                          configuration.security_configuration.inspect_suspicious_login_afterstring (ISO-8601)疑わしいログイン通知が加盟店に送信されるまでの期間
                          configuration.security_configuration.refund_percent_limitnumber加盟店が行った合計課金額から返金可能な金額の割合
                          configuration.security_configuration.limit_charge_by_card_configuration.quantity_of_chargesnumberduration_windowで指定された期間内に行うことができる課金の数
                          configuration.security_configuration.limit_charge_by_card_configuration.duration_windowstring (ISO-8601)課金可能な期間
                          configuration.installments_configuration.enabledboolean分割払いが有効かどうか
                          configuration.installments_configuration.min_charge_amountnumberデフォルト通貨でのサイクルごとの最小課金額
                          configuration.installments_configuration.max_payout_periodstring (ISO-8601)分割払いの最大期間
                          configuration.installments_configuration.failed_cycles_to_cancelnumber分割払いが自動的にキャンセルされるまでの失敗した課金数
                          configuration.card_brand_percent_fees.visanumberVisaカードの手数料率
                          configuration.card_brand_percent_fees.american_expressnumberアメリカン・エキスプレスカードの手数料率
                          configuration.card_brand_percent_fees.mastercardnumberMastercardの手数料率
                          configuration.card_brand_percent_fees.maestronumberMaestroカードの手数料率
                          configuration.card_brand_percent_fees.discovernumberDiscoverカードの手数料率
                          configuration.card_brand_percent_fees.jcbnumberJCBカードの手数料率
                          configuration.card_brand_percent_fees.diners_clubnumberダイナーズクラブカードの手数料率
                          configuration.card_brand_percent_fees.union_paynumberUnionPayカードの手数料率

                          MoneyAmount

                          フィールドデータ型備考
                          amountnumber小数点以下の金額
                          currencystring (ISO-4217)ISO-4217形式の通貨

                          137. 商品

                          商品機能は加盟店さまが販売している商品の、名称や金額・課金方式について登録することができます。
                          登録した商品は各決済フォームで選択・指定することでテンプレートのように使用することができます。

                          ※ご利用にはオプション契約が必要になります。

                          利用方法

                          まず管理画面で商品を作成します。
                          作成方法、各項目についてはこちらを確認して下さい。

                          次に各決済フォームで登録した商品の情報を指定します。

                          決済方式利用方法
                          リンクフォーム・管理画面>リンクフォーム の作成画面で「商品」を有効 かつ 任意の商品を追加して保存
                          ・作成時に指定した商品コードをパラメータに追加
                          詳細はこちら
                          ウィジェット・インラインフォーム作成時に指定した商品コードをパラメータに追加
                          詳細はこちら
                          API非対応

                          複数商品の利用について

                          この機能では、一度の決済で複数の商品を処理できます。
                          ただ、同時に決済できる商品の種類には利用する決済フォームごとに制限があります。

                          決済方式可能な利用方法
                          リンクフォーム都度課金商品同士の複数追加
                          都度課金商品と定期課金商品(1つまで)の複数追加
                          定期課金商品同士の複数追加 ※開発中
                          ウィジェット・インラインフォーム都度課金商品同士の複数追加

                          パラメータで利用する場合の注意点

                          • 複数の商品を同時に指定する場合は「,」(カンマ)で区切って下さい。
                          • 商品のパラメータを指定する場合は、app-id,checkoutを指定する必要があります。
                          • 商品に含まれる情報をパラメータで別途指定すると商品の情報より優先されます。
                            ex) amount や定期課金の場合 period
                          • 商品に含まれない情報であればその他パラメータで併用可能です。
                            ex) 初回0円の定期課金を作成する際はcvv-authorizeの指定が必要です。
                          • 仮売上を行いたい場合はcaptureを併用して指定してください。

                          138. 1.消費者の利用フロー

                          1.メール通知など、加盟店さまから案内された支払い情報の確認・変更画面URLをクリックする
                           ※消費者へのURLの共有方法は、「消費者へのURLの共有方法」のページを参照してください。

                          2.メールアドレスを入力する(URLにメールアドレスを未指定の場合のみ)

                          3.指定のメールアドレス宛に届いた認証コードを入力し、ログインする
                            (認証コードの有効期限:5分)

                          4.各変更/停止処理を行う

                          5.処理ごとに通知メールが届く(通知設定がONの場合のみ)

                          ※消費者の各処理が完了すると、処理ごとに加盟店さまに通知メールやウェブフックが送信されます。(通知メール設定およびウェブフックのトリガーがONの場合のみ)

                          139. 返金 - LIST

                          返金オブジェクトのLISTリクエストには以下が必要です。(括弧内は入力箇所)
                          課金 / 返金などをまとめて表示させたい場合はトランザクション:Listを推奨します。

                          • 店舗ID(URLの{storeId}部分)
                          • 課金ID(URLの{chargeId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/refunds \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c3-3cfe-3bc0-abed-0bb96f792078/refunds \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "items": [
                                  {
                                      "id": "11ef32c8-c721-823a-ba45-77212da778fa",
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
                                      "status": "successful",
                                      "amount": 250,
                                      "currency": "JPY",
                                      "amount_formatted": 250,
                                      "reason": "customer_request",
                                      "message": "15 percent off",
                                      "error": null,
                                      "metadata": {
                                          "coupon": "VIP007"
                                      },
                                      "mode": "test",
                                      "created_on": "2024-06-25T07:58:58.748326Z",
                                      "merchant_name": "管理画面ガイド",
                                      "store_name": "管理画面ガイド_TEST店舗"
                                  },
                                {
                                      "id": "11ef32c9-f49b-a6ea-9f24-17662f077450",
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
                                      "status": "successful",
                                      "amount": 100,
                                      "currency": "JPY",
                                      "amount_formatted": 100,
                                      "reason": "customer_request",
                                      "message": "return",
                                      "error": null,
                                      "metadata": {},
                                      "mode": "test",
                                      "created_on": "2024-06-25T08:12:15.763927Z",
                                      "merchant_name": "管理画面ガイド",
                                      "store_name": "管理画面ガイド_TEST店舗"
                                  }
                              ],
                              "has_more": false,
                              "total_hits": 2
                          }

                          140. 店舗 - リクエスト

                          140.1 店舗 - GET

                          店舗オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

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

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId} \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0 \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "name": "管理画面ガイド_TEST店舗",
                              "created_on": "2023-05-18T06:03:53.125782Z",
                              "configuration": {
                                  "percent_fee": null,
                                  "flat_fees": null,
                                  "logo_url": null,
                                  "country": null,
                                  "language": null,
                                  "display_time_zone": null,
                                  "min_transfer_payout": null,
                                  "minimum_charge_amounts": null,
                                  "maximum_charge_amounts": null,
                                  "user_transactions_configuration": {
                                      "enabled": null,
                                      "notify_customer": null,
                                      "notify_on_test": null,
                                      "notify_on_recurring_token_creation": null,
                                      "notify_on_recurring_token_cvv_failed": null,
                                      "notify_on_webhook_failure": null,
                                      "notify_on_webhook_disabled": null,
                                      "notify_user_on_failed_transactions": null,
                                      "notify_customer_on_failed_transactions": null,
                                      "notify_user_on_convenience_instructions": null,
                                      "notify_on_subscriptions": null,
                                      "notify_on_authorizations": null,
                                      "notify_on_cvv_authorizations": null,
                                      "notify_on_cancels": null,
                                      "customer_refer_link_enabled": null,
                                      "notify_on_convenience_expiry": null
                                  },
                                  "recurring_token_configuration": {
                                      "recurring_type": null,
                                      "charge_wait_period": null,
                                      "card_charge_cvv_confirmation": {
                                          "enabled": null,
                                          "threshold": null
                                      }
                                  },
                                  "security_configuration": {
                                      "card_charge_cooldown": null,
                                      "subscription_cooldown": null,
                                      "idempotent_card_charge_cooldown": null,
                                      "idempotent_subscription_cooldown": null,
                                      "restrict_ip_after_failed_charge": {
                                          "enabled": null,
                                          "count": null,
                                          "cooldown": null
                                      },
                                      "inspect_suspicious_login_after": null,
                                      "refund_percent_limit": null,
                                      "limit_charge_by_card_configuration": null,
                                      "confirmation_required": null,
                                      "min_refund_threshold": null,
                                      "limit_refund_by_sales": null
                                  },
                                  "checkout_configuration": {
                                      "ec_email": {},
                                      "ec_products": {}
                                  },
                                  "installments_configuration": {
                                      "enabled": null,
                                      "card_processor": {
                                          "revolving": null,
                                          "fixed_cycle": null
                                      },
                                      "supported_payment_types": null,
                                      "min_charge_amount": null,
                                      "max_payout_period": null,
                                      "only_with_processor": true
                                  },
                                  "subscription_plan_configuration": {
                                      "enabled": null,
                                      "fixed_cycle": null,
                                      "fixed_cycle_amount": null,
                                      "supported_payment_types": null,
                                      "min_charge_amount": null,
                                      "max_payout_period": null
                                  },
                                  "card_brand_percent_fees": {
                                      "visa": null,
                                      "american_express": null,
                                      "mastercard": null,
                                      "maestro": null,
                                      "discover": null,
                                      "jcb": null,
                                      "diners_club": null,
                                      "union_pay": null,
                                      "private_label": null
                                  },
                                  "subscription_configuration": {
                                      "enabled": null,
                                      "failed_charges_to_cancel": null,
                                      "suspend_on_cancel": null,
                                      "allow_merchant_amount_patch": null,
                                      "allow_merchant_due_date_patch": null
                                  },
                                  "customer_management_configuration": {
                                      "enabled": null,
                                      "default_roles": null,
                                      "default_mode": null
                                  },
                                  "descriptor_provided_configuration": null,
                                  "card_configuration": {
                                      "enabled": null,
                                      "debit_enabled": null,
                                      "prepaid_enabled": null,
                                      "debit_authorization_enabled": null,
                                      "prepaid_authorization_enabled": null,
                                      "forbidden_card_brands": null,
                                      "allowed_countries_by_ip": null,
                                      "foreign_cards_allowed": null,
                                      "fail_on_new_email": null,
                                      "card_limit": null,
                                      "allow_empty_cvv": false,
                                      "only_direct_currency": null,
                                      "three_ds_required": null,
                                      "three_ds_address_required": null,
                                      "allow_direct_token_creation": null
                                  },
                                  "qr_scan_configuration": {
                                      "enabled": null,
                                      "forbidden_qr_scan_gateways": null
                                  },
                                  "convenience_configuration": {
                                      "expiration_time_shift": {}
                                  },
                                  "paidy_configuration": {
                                      "enabled": null
                                  },
                                  "qr_merchant_configuration": {
                                      "enabled": null
                                  },
                                  "online_configuration": {},
                                  "bank_transfer_configuration": {
                                      "expiration_time_shift": {}
                                  },
                                  "platform_credentials_enabled": null,
                                  "tagged_platform_credentials_enabled": null
                              },
                              "tms_store_data": null
                          }

                          140.2 店舗 - LIST

                          店舗オブジェクトに対するLISTリクエストには以下が必要です。(括弧内は入力箇所)
                          パラメータでsearchを用い、店舗IDを指定することで特定の店舗をフィルタリングして表示することも可能です。

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

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。

                          フィールドデータ型備考
                          searchstring店舗名でフィルタリングする

                          記述例

                          curl --request GET \
                          --url http://api.univapay.com/stores \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "items": [
                                  {
                                      "id": "11eec3c2-c117-9386-809b-3fb44d6462d4",
                                      "name": "管理画面ガイド_TEST店舗Ⅳ",
                                      "created_on": "2024-02-05T01:06:12.557138Z",
                                      "merchant_name": "管理画面ガイド"
                                  },
                                  {
                                      "id": "11ee6d59-0aa7-3562-bbe0-af183c595b00",
                                      "name": "管理画面ガイド_TEST店舗Ⅲ",
                                      "created_on": "2023-10-18T01:52:49.32173Z",
                                      "merchant_name": "管理画面ガイド"
                                  },
                                  {
                                      "id": "11ee4bb9-8282-c9aa-8ac7-3f876b49d88b",
                                      "name": "管理画面ガイド_TEST店舗Ⅱ",
                                      "created_on": "2023-09-05T06:57:42.566226Z",
                                      "merchant_name": "管理画面ガイド"
                                  },
                                  {
                                      "id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "name": "管理画面ガイド_TEST店舗",
                                      "created_on": "2023-05-18T06:03:53.125782Z",
                                      "merchant_name": "管理画面ガイド"
                                  }
                              ],
                              "has_more": false
                          }

                          140.3 カスタマーUUID

                          カスタマーUUIDオブジェクト

                          フィールドデータ型備考
                          customer_idstring当システムが生成した顧客を識別するUUID

                          店舗オブジェクトに対するカスタマーUUIDリクエストには以下が必要です。(括弧内は入力箇所)
                          加盟店が顧客を識別するIDを利用している際、当システム側で顧客を識別するUUIDを生成することができます。

                          • 店舗ID(URLの{id}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)
                          curl --request POST \
                          --url https://api.univapay.com/stores/{id}/create_customer_id \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。

                          フィールドデータ型備考
                          customer_idstring加盟店システムで発番する顧客を識別するID

                          記述例

                          curl --request POST \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/create_customer_id \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --data "{"customer_id": "1234abcd"}"

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "customer_id": "03ad9882-a1ca-4064-a905-3682477bec10"
                          }

                          141. 処理結果のメール通知

                          テンプレートでは、決済メールテンプレートの作成・編集ができます。

                          テンプレートを作成しない場合は、決済システム側のデフォルトの決済完了メールが送信されます。
                          別ページに例を記載していますが、その他メールの内容についてはテストモードで決済をすることで確認できます。

                          141.1 テンプレートの種類

                          決済完了

                          決済が成功した時に送信されます。仮売上のキャプチャ、返金を行ったときもこのメールが送信されます。
                          ${transaction_type}の部分が処理によって「課金」もしくは「返金」と表示されます。

                          件名
                          ${store} ${transaction_type}のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、${transaction_type}が行われましたのでご確認ください。

                          [支払方法 ] ${payment_type}(${payment_brand})
                          [課金ID  ] ${charge_id}
                          [課金日時 ] ${date}
                          [${transaction_type}金額 ] ${amount}
                          [請求名  ] ${descriptor}

                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          決済失敗

                          決済が失敗したときに送信されます。コンビニ決済の入金期限が切れたときもこのメールを送信されます

                          件名
                          ${store} 課金失敗のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の課金が失敗いたしましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法 ] ${payment_type}(${payment_brand})
                          [課金ID  ] ${charge_id}
                          [課金日時 ] ${date}
                          [課金金額 ] ${amount}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          リカーリング作成

                          クレジットカード決済のリカーリングトークンの作成(支払い情報の登録)が成功した時に送信されます
                          通常課金や定期課金で「カード登録(リカーリングトークン作成)」をONにした時にも送信されます

                          件名
                          ${store} お支払い情報登録のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          ご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、${payment_type}情報が登録されましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法 ] ${payment_type}(${payment_brand})
                          [名義   ] ${card_holder_name}
                          [更新日  ] ${date}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          リカーリングトークンのCVV認証失敗

                          カード登録(定期課金の初回カード登録も含む)のみ行う処理で、CVV認証(セキュリティコード認証)が失敗した時に送信されます

                          件名
                          ${store} お支払い情報登録失敗のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          ご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、${payment_type}情報登録が失敗しましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法] ${payment_type}(${payment_brand})
                          [日時  ] ${date}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          オーソリの実行

                          仮売上に成功した時に送信されます

                          件名
                          ${store} 仮売上のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          ご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、仮売上に成功しましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法   ] ${payment_type}(${payment_brand})
                          [名義     ] ${card_holder_name}
                          [メールアドレス] ${email_address}
                          [課金ID    ] ${charge_id}
                          [課金金額   ] ${amount}
                          [日時     ] ${date}
                          [請求名    ] ${descriptor}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          オーソリの実行

                          仮売上に失敗した時に送信されます

                          件名
                          ${store} 仮売上失敗のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          ご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、仮売上に失敗しましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法   ] ${payment_type}(${payment_brand})
                          [名義     ] ${card_holder_name}
                          [メールアドレス] ${email_address}
                          [課金ID    ] ${charge_id}
                          [課金金額   ] ${amount}
                          [日時     ] ${date}
                          [請求名    ] ${descriptor}
                          [エラーコード ]${error_code}
                          [エラー内容  ]${error_message}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          オーソリ済課金のキャンセル

                          仮売上をキャンセルした時に送信されます

                          件名
                          ${store} 課金キャンセルのお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          ご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、課金がキャンセルされましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法   ] ${payment_type}(${payment_brand})
                          [課金ID    ] ${charge_id}
                          [キャンセルID ] ${cancel_id}
                          [キャンセル金額] ${amount}
                          [日時     ] ${date}
                          [請求名    ] ${descriptor}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金作成

                          初回の定期課金作成が成功した時に送信されます

                          件名
                          ${store} 定期課金作成のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、定期課金が登録されましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法  ] ${payment_type}(${payment_brand})
                          [課金ID   ] ${charge_id}
                          [課金日時  ] ${date}
                          [請求名   ] ${descriptor}
                          [定期課金ID ] ${subscription_id}
                          [課金金額  ] ${amount}
                          [次回課金金額] ${subscription_next_payment_amount:- }
                          [次回課金日 ] ${subscription_next_date:-次回課金なし}
                          [課金サイクル]${subscription_period}
                          ${subscription_payment_details:- }
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金決済

                          定期課金の2回目以降の決済が成功した時に送信されます
                          ${transaction_type}の部分が処理によって「課金」もしくは「返金」と表示されます

                          件名
                          ${store} 定期課金の${transaction_type}成功のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、${payment_type}の${transaction_type}が行われましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法  ] ${payment_type}(${payment_brand})
                          [課金ID   ] ${charge_id}
                          [課金日時  ] ${date}
                          [請求名   ] ${descriptor}
                          [定期課金ID ] ${subscription_id}
                          [課金金額  ] ${amount}
                          [次回課金金額] ${subscription_next_payment_amount:- }
                          [次回課金日 ] ${subscription_next_date:-次回課金なし}
                          [課金サイクル]${subscription_period}
                          ${subscription_payment_details:- }
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金決済失敗

                          初回課金金額がある定期課金の作成 および 定期課金の2回目以降の決済が失敗した時に送信されます

                          件名
                          ${store} 定期課金の${transaction_type}失敗のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、${payment_type}の${transaction_type}が失敗いたしましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法 ] ${payment_type}(${payment_brand})
                          [課金ID  ] ${charge_id}
                          [課金日時 ] ${date}
                          [定期課金ID ] ${subscription_id}
                          [課金金額  ] ${amount}
                          [次回課金金額] ${subscription_next_payment_amount:- }
                          [次回課金日 ] ${subscription_next_date:-次回課金なし}
                          [課金サイクル]${subscription_period}
                          ${subscription_payment_details:- }
                          ※初回の決済に失敗した場合は、もう一度店舗のフォームから決済処理を行ってください。

                          [エラーコード]${error_code:- }
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金一時停止

                          定期課金の一時停止をした時に送信されます

                          件名
                          ${store} 定期課金停止のお知らせ
                          本文

                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。
                          決済情報をご確認のうえ、大切に保管してください。
                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。
                          下記の通り、定期課金の一時停止処理が行われましたのでご確認ください。
                          -------------------------------------------------------------------------------------------
                          [支払方法  ] ${payment_type}(${payment_brand})
                          [停止処理日 ] ${date}
                          [請求名   ] ${descriptor}
                          [定期課金ID ] ${subscription_id}
                          ${subscription_payment_details:- }
                          -------------------------------------------------------------------------------------------
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金永久停止

                          定期課金の永久停止をした時に送信されます

                          件名
                          ${store} 定期課金停止のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。
                          決済情報をご確認のうえ、大切に保管してください。
                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。
                          下記の通り、定期課金の永久停止処理が行われましたのでご確認ください。
                          -------------------------------------------------------------------------------------------
                          [支払方法  ] ${payment_type}(${payment_brand})
                          [停止処理日 ] ${date}
                          [請求名   ] ${descriptor}
                          [定期課金ID ] ${subscription_id}
                          -------------------------------------------------------------------------------------------
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金のカード情報変更の案内

                          ※開発中のため現在利用不可
                          管理画面の定期課金詳細にあるボタン(開発中)から、支払い情報の確認・変更画面を案内したときに消費者に送信されます

                          件名
                          ${store} 定期課金のカード情報変更のご案内
                          本文
                          =========================================================
                          このメールは定期課金にお支払い情報が登録されているメールアドレス宛に送信しております。

                          ご確認のうえ、大切に保管してください。

                          =========================================================

                          いつも${store}をご利用いただき誠にありがとうございます。

                          定期課金のお支払い情報更新手続きは下記URLから行ってください。
                          ——————————————————————————————-
                          ${customer_refer_link}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金のカード情報変更完了

                          定期課金に登録されているカード情報が変更された時に送信されます

                          件名
                          ${store} 定期課金の${payment_type}情報更新のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          ご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、定期課金の${payment_type}情報が更新されましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法 ] ${payment_type}(${payment_brand})
                          [名義   ] ${card_holder_name}
                          [更新日  ] ${date}
                          [定期課金ID] ${subscription_id}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金の詳細

                          回数無制限の定期課金の情報が含まれています
                          このテンプレートは定期課金関連のテンプレートに${subscription_payment_details}を入力すると反映させられます

                          [定期課金種類]${subscription_type}
                          [課金回数]${subscription_cycles_count}回目
                          ——————————————————————————————-
                          定期課金のお支払い情報更新手続きは下記URLから行えます。
                          ${customer_refer_link:- }
                          ※ご利用店舗様によってはURLから更新できない場合がございます。
                           詳しくはご利用店舗様へお問合せくださいませ。

                          回数制限付き定期課金の詳細

                          回数制限付き定期課金の情報が含まれています
                          このテンプレートは定期課金関連のテンプレートに${subscription_payment_details}を入力すると反映させられます

                          [定期課金種類]${subscription_type}
                          [課金回数]${subscription_cycles_count}回目
                          ——————————————————————————————-
                          定期課金のお支払い情報更新手続きは下記URLから行えます。
                          ${customer_refer_link:- }
                          ※ご利用店舗様によってはURLから更新できない場合がございます。
                           詳しくはご利用店舗様へお問合せくださいませ。

                          分割払いの詳細

                          分割払いの情報が含まれています
                          このテンプレートは定期課金関連のテンプレートに${subscription_payment_details}を入力すると反映させられます

                          [定期課金種類]${subscription_type}
                          [分割回数]${subscription_total_cycles_count}回

                          決済フォーム支払い発行

                          オプションでリンクフォームのメール送信機能を利用するときに送信されます

                          件名
                          決済リンクよりお支払いをお願いします${store}

                          本文
                          =========================================================
                          ご注文ありがとうございます。
                          ${store}でございます。

                          内容をご確認の上、以下のURLから決済画面へお進みください。
                          ——————————————————————————————-
                          [URL期限 ] ${date}
                          [金額 ] ${amount}
                          [決済リンク]${link}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はお問い合わせ先情報へお願いいたします。

                          決済フォームカード登録発行

                          リンクフォームのメール送信機能を利用するとき、課金を行わなずカード登録のみ行うリンクフォームの場合はこのメールが送信されます

                          件名
                          決済リンクよりお支払いをお願いします${store}

                          本文
                          =========================================================
                          ご連絡ありがとうございます。
                          ${store}でございます。

                          内容をご確認の上、以下のURLからカード登録画面へお進みください。
                          ——————————————————————————————-
                          [URL期限 ] ${date}
                          [決済リンク]${link}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はお問い合わせ先情報へお願いいたします。

                          振込期限切れ(督促なし)
                          銀行振込の振込期限が切れたときに送信されます

                          件名
                          ${store} お振込期限切れについて
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記お申込みに関しまして、お振込期限を過ぎましたので 無効となりました事をお知らせいたします。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}
                          [金額   ] ${amount}
                          [入金額  ] ${deposit_amount}
                          ※入金がある場合は、下記までお問い合わせください。
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          振込期限切れ(督促有り)

                          銀行振込の振込期限が切れた時、再度振込期限を指定して案内する設定の場合に送信されます

                          件名
                          ${store} お振込のご確認
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記お申込みに関しまして、お振込期限が過ぎておりますが、
                          本日時点でご入金が確認できておりません。

                          お手数ではございますが、内容をご確認の上お振込をお願いいたします。

                          なお、本通知と行き違いでお振込みいただいている場合は、
                          何卒ご容赦くださいますようお願い申し上げます。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}

                          [入金額  ] ${deposit_amount}
                          [差額   ] ${deposit_needed}

                          [銀行名  ] ${bank_name}
                          [支店番号 ] ${bank_branch_code}
                          [支店名  ] ${bank_branch_name}
                          [口座種別 ] 普通
                          [口座番号 ] ${bank_account_number}
                          [口座名義 ] ${bank_account_holder_name}

                          [最終期日 ] ${date}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:-メール対応のみ}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          銀行振込 申込完了

                          銀行振込の申込が行われたときに送信されます

                          件名
                          ${store}  銀行振込 銀行振込のお申込を受け付けました
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          内容をご確認の上、期日までにお振込をお願いいたします。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}
                          [金額   ] ${amount}

                          [銀行名  ] ${bank_name}
                          [支店番号 ] ${bank_branch_code}
                          [支店名  ] ${bank_branch_name}
                          [口座種別 ] 普通
                          [口座番号 ] ${bank_account_number}
                          [口座名義 ] ${bank_account_holder_name}

                          [振込期日 ] ${date}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          銀行振込 キャンセル

                          銀行振込の申込を加盟店さまが取り消した時に送信されます

                          件名
                          ${store} 銀行振込 お申込がキャンセルされました
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記お申込みがキャンセルとなりましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}
                          [金額   ] ${amount}

                          [キャンセル日] ${date}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:-メール対応のみ}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          銀行振込 入金完了

                          銀行振込で消費者が入金したときに送信されます

                          件名
                          ${store} お振込を確認しました
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、口座へのお振込を確認いたしましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}
                          [金額   ] ${amount}

                          [入金額  ] ${deposit_amount}
                          [入金日時 ] ${date}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          銀行振込 不足入金

                          銀行振込で消費者の入金金額が不足していたときに送信されます

                          件名
                          ${store} お振込金額の不足について
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。
                          下記お申込みに関しまして、お振込金額が不足しております。

                          お手数ではございますが、内容をご確認いただき、
                          差額分のお振込をお願いいたします。

                          なお、本通知と行き違いでお振込みいただいている場合は、
                          何卒ご容赦くださいますようお願い申し上げます。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}
                          [金額   ] ${amount}
                          [入金額  ] ${deposit_amount}
                          [入金日時 ] ${date}

                          [差額   ] ${deposit_needed}

                          [銀行名  ] ${bank_name}
                          [支店番号 ] ${bank_branch_code}
                          [支店名  ] ${bank_branch_name}
                          [口座種別 ] 普通
                          [口座番号 ] ${bank_account_number}
                          [口座名義 ] ${bank_account_holder_name}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:-メール対応のみ}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          銀行振込 入金完了(超過)

                          銀行振込で消費者の入金金額が超過していたときに送信されます

                          件名
                          ${store} お振込を確認しました(金額超過)
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、口座へのお振込を確認いたしましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}

                          [入金額  ] ${deposit_amount}
                          [入金日時 ] ${date}

                          [超過金額 ] ${exceeded_amount}
                          ※上記金額が本来お振込いただく金額より超過で入金されています。
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:-メール対応のみ}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          銀行振込 振込期限の通知

                          振込期限日が近づくとこのメールを送信します
                          一般設定で送信するかどうか、何日前に送信するかを設定できます

                          件名
                          ${store} お振込期限について
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。
                          下記お申込みに関しまして、お振込期限が近づいております。
                          お手数ではございますが、内容をご確認の上お振込をお願いいたします。

                          なお、本通知と行き違いでお振込みいただいている場合は、
                          何卒ご容赦くださいますようお願い申し上げます。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}
                          [金額   ] ${amount}
                          [入金額  ] ${deposit_amount}

                          [差額   ] ${deposit_needed}
                          [振込期日 ] ${date}

                          [銀行名  ] ${bank_name}
                          [支店番号 ] ${bank_branch_code}
                          [支店名  ] ${bank_branch_name}
                          [口座種別 ] 普通
                          [口座番号 ] ${bank_account_number}
                          [口座名義 ] ${bank_account_holder_name}

                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          コンビニ決済のご案内

                          コンビニ決済の申込が行われたときに送信されます

                          件名
                          ${store} コンビニ決済のお申し込みを受け付けました
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          内容をご確認の上、期日までにご入金をお願いいたします。
                          ——————————————————————————————-
                          [支払方法 ] コンビニ決済
                          [コンビニ名] ${payment_brand}
                          [課金ID  ] ${charge_id}
                          [金額 ] ${amount}
                          [入金期日 ] ${date}

                          [(各コンビニ情報の名称)] ${konbini_payment_details}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          コンビニ決済の取り消し

                          コンビニ決済の申込を加盟店側で取り消したときに送信されます

                          件名
                          ${store} お支払いのキャンセルについて
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。
                          下記お申込みに関しまして、キャンセルされましたので
                          無効となりました事をお知らせいたします。
                          ——————————————————————————————-
                          [支払方法 ] コンビニ決済
                          [コンビニ名] ${payment_brand}
                          [課金ID  ] ${charge_id}
                          [金額 ] ${amount}

                          ※入金がある場合は、下記までお問い合わせください。
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          コンビニ決済 期限切れ

                          コンビニ決済の入金期限が切れたときに送信されます

                          件名
                          ${store} お支払期限切れについて
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記お申込みに関しまして、お支払期限を過ぎましたので
                          無効となりました事をお知らせいたします。
                          ——————————————————————————————-
                          [支払方法 ] コンビニ支払い
                          [コンビニ名] ${payment_brand}
                          [課金ID  ] ${charge_id}
                          [金額 ] ${amount}
                          [入金期限 ] ${date}

                          ※入金された場合は、下記までお問い合わせください。
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:-メール対応のみ}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          コンビニ決済の詳細

                          各コンビニエンスストアごとの、消費者が入金するための情報が含まれています。このテンプレートは「コンビニ決済のご案内」に含まれ、選択したコンビニエンスストアのテンプレート情報が入ります。

                          141.2 パラメータ

                          パラメータを利用することで、消費者が行った処理ごとに結果の値を動的に反映させることができます。
                          テンプレートごとに利用できるパラメータは異なるため、各テンプレートの作成画面から確認してください。

                          各種パラメーターのご案内

                          パラメータ説明
                          ${date}処理日時
                          ※下記テンプレートのみ入金期限日時を表示
                          ・銀行振込(申込完了 / 振込期限切れ(督促有り) / 振込期限の通知)
                          ・コンビニ決済のご案内
                          ${amount}金額
                          ※定期課金の場合は1回あたりの課金金額、分割の場合は総額を表示
                          ${payment_type}支払方法 
                          ※カード、オンライン決済など
                          ${payment_brand}支払ブランド 
                          ※Visa、MasterCard、PayPayオンラインなど
                          ${transaction_type}課金 or 返金
                          ${store}店舗名
                          ${charge_id}課金ID
                          ${card_holder_name}カード名義 
                          ${email_address}顧客メールアドレス
                          ${descriptor}利用明細に記載される名称
                          ※テストモードの場合は機能せず、パラメータをそのまま表示
                          ${contact_email}連絡先メールアドレス
                          ${contact_phone}連絡先電話番号
                          ${charge_metadata}課金時に付与されたメタデータ
                          ${token_metadata}トークン作成時に付与されたメタデータ
                          ${subscription_id}定期課金ID
                          ${subscription_period}定期課金のサイクル
                          ${subscription_next_date}定期課金の次回課金日
                          ${subscription_initial_amount}定期課金の初回課金額
                          ${subscription_amount}回数無制限の定期課金:1回あたりの課金金額
                          回数制限付き定期課金・分割払い:支払いの総額
                          ${subscription_payment_details}定期課金の詳細
                          ・定期課金種類
                          ・課金回数/分割回数
                          ${customer_refer_link}カード情報変更/停止URL
                          ${link}決済フォームor支払いに必要な情報のリンク
                          ${customer_name}顧客名
                          ${bank_accout_number}口座番号
                          ${bank_branch_code}支店番号
                          ${bank_branch_name}支店名
                          ${bank_account_type}口座の種類
                          ${bank_account_holder_name}振込先口座名
                          ${bank_name}振込先銀行名
                          ${deposit_amount}入金額
                          ${deposit_needed}不足金額
                          ${exeed_amount}超過入金額
                          ${konbini_payment_details}コンビニ支払い情報詳細
                          ${konbini_transaction_id}コンビニ支払い番号など
                          ${error_code}エラーコード
                          ${error_message}エラー内容
                          ※決済サービスによっては利用できないパラメータもございます

                          141.3 応用的なパラメータの利用方法

                          パラメータによっては、メタデータなど1つの項目に複数の値が存在したり、処理の種類によりパラメータに値が入らない場合があります。
                          こういった場合にパラメータ内でより細かい指定をすることで、パラメータや複数メタデータをそのままメール本文に反映するのを防ぐことができます。

                          • パラメータのデフォルト値を定義する
                            ${parameter:-(デフォルト値)} を使用して下さい
                            (parameter)に値が無ければ、指定したデフォルト値が表示されます。
                            値が無いときに何も表示させたくない場合は、デフォルト値に空白文字を指定してください。
                          • 特定のメタデータの値のみを表示する
                            ${charge_metadata.(キー)},${token_metadata.(キー)}の形式で指定してください。

                          表示させたいメタデータの指定 例

                          パラメータメールに反映される情報
                          ${subscription_next_date:-無し}次回以降に支払いが残っている場合:2024/08/01
                          今回の支払いが最後だった場合:無し
                          ${charge_metadata.univapay-product-names}
                          または
                          ${token_metadata.univapay-product-names}
                          商品名
                          ${charge_metadata.univapay-phone-number}
                          または
                          ${token_metadata.univapay-phone-number}
                          電話番号

                          ${token_metadata.(キー)}の利用が必須のパターン

                          下記処理の場合は${charge_metadata.(キー)}を指定してもメタデータが表示されません。

                          • リカーリング課金
                          • CSV課金
                          • リカーリングトークン作成
                          • カード情報変更時

                          商品ごとに通知メールの文面を分ける

                          商品機能をご利用にはオプション契約が必要になります。

                          商品ごとにメタデータを付与している場合、${charge_metadata.キー:-(空白)} とすることで、指定したメタデータの値のみメール文面に反映させるような使い方ができます。
                          商品を利用した場合のみ表示したいメタデータの値が表示され、商品を利用しない決済の場合は空白になります。

                          ①商品にメタデータを付与
                           商品ごとにメールで表示させたい文章をメタデータとして追加します。

                          ②通知メールテンプレートを編集 
                           商品メタデータのキーをproduct-text1とする場合、
                          メール通知テンプレート内のタグを ${charge_metadata.product-text1:-}
                          とすることで、メールの各箇所に商品別のメール文章のみを表記することができます。

                          ③通知メールでの反映を確認
                           商品ごとに異なる文章が表示され、商品を指定しない決済の時はメールに何も表示されないことが確認できれば問題ありません。

                          142. 2.加盟店さまの設定

                          変更・停止の許可設定

                          支払い情報の確認・変更画面から実行可能な処理は、管理画面の 一般設定>一般>全体設定>支払い情報の確認・変更画面から設定できます。

                          消費者側の制限

                          設定項目説明消費者の操作
                          消費者側で定期課金の表示定期課金情報タブを表示
                          消費者側でお支払い方法の表示お支払方法タブを表示
                          消費者側で定期課金の停止定期課金の停止を許可定期課金情報>課金停止処理
                          消費者側でカードの名義・有効期限の変更 リカーリングトークンのカード名義/有効期限更新を許可
                          ※定期課金情報タブからカード名義/有効期限を変更するには、定期課金のトークンがリカーリングである必要があります
                          定期課金情報 or お支払方法>カード管理>名義・期限の変更
                          消費者側で新規カード登録リカーリングトークンの新規作成を許可
                          ※定期課金情報タブでは、リカーリングトークンを作成しながら選択した定期課金のカード情報を更新します
                          定期課金情報 or お支払方法>カード管理>新規カード登録
                          消費者側でカードの削除リカーリングトークンの削除を許可
                          ※定期課金を利用中の場合は、削除できません
                          お支払方法>カード管理>カード削除
                          消費者側で他のカードの選択 登録済のリカーリングトークンの選択を許可定期課金情報>カード管理>その他のカードを使う

                          支払い情報の確認・変更画面のモード

                          支払い情報の確認・変更画面のモードを本番/テストから選択できます。
                          すべての支払い情報の確認・変更画面に対して指定したモードが反映されます。

                          143. 返金 - 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}/refunds \
                          --header 'Authorization: Bearer {secret}.{jwt}' \
                          --header 'content-type: application/json' \

                          利用できるパラメータ

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

                          フィールド名データ型備考
                          metadatajson返金(Refund)に紐づくメタデータ

                          Bodyの記述例

                          curl --request PATCH \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/refunds/11ef32c8-c721-823a-ba45-77212da778fa \
                          --header 'Authorization: Bearer {secret}.{jwt}' \
                          --header 'content-type: application/json' \
                          --data '{"metadata": {"customer_id":5555}}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef32c8-c721-823a-ba45-77212da778fa",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "charge_id": "11ef32c3-3cfe-3bc0-abed-0bb96f792078",
                              "status": "successful",
                              "amount": 250,
                              "currency": "JPY",
                              "amount_formatted": 250,
                              "reason": "customer_request",
                              "message": "15 percent off",
                              "error": null,
                              "metadata": {
                                  "coupon": "VIP007",
                                  "customer_id": 5555
                              },
                              "mode": "test",
                              "created_on": "2024-06-25T07:58:58.748326Z"
                          }

                          144. 決済設定 - 概要

                          リンクフォーム / ウィジェットが表示されると、パラメータで指定されたアプリケーショントークンに関連した店舗の決済設定を取得する為に自動的にAPIにリクエストを行います。
                          決済設定は、リンクフォーム / ウィジェットを動作する為に必要な様々な設定情報の集合です。

                          決済設定オブジェクト

                          フィールドデータ型備考
                          modestringウィジェットに設定されたアプリケーショントークンのモード
                          namestringストア名
                          logo_imagestringストアのロゴ画像のURL
                          recurring_token_privilegestringこのストアのリカーリングトークンの権限。none (なし), bounded (制限付き), infinite (無制限) のいずれか。
                          card_configuration.enabledbooleanカードが利用可能か
                          card_configuration.debit_enabledbooleanデビットカードが利用可能か
                          card_configuration.prepaid_enabledbooleanプリペイドカードが利用可能か
                          card_configuration.forbidden_card_brandsarray[string]このストアでの使用が許可されていないカードブランドのリスト
                          card_configuration.allowed_countries_by_iparray[string]IPアドレスが課金を許可されていない国のリスト
                          card_configuration.foreign_cards_allowedboolean外国のカードを許可するかどうか。
                          外国のカードとは、その国がストアの国と同じではないカードを指す
                          card_configuration.fail_on_new_emailboolean以前に特定のメールアドレスで使用されたカードを許可するかどうか
                          trueの場合、別のメールアドレスで使用されているカードは拒否される
                          card_configuration.allow_empty_cvvbooleanカード払いのCVVチェックを有効にするかどうか
                          card_configuration.card_limit.amountnumber定義された期間、カードごとに利用を制限する金額
                          card_configuration.card_limit.currencystring (ISO-4217)amountが定義されている通貨
                          card_configuration.card_limit.durationstring (ISO-8601)定義された期間、カードごとに利用を制限する金額
                          qr_scan_configuration.enabledbooleanQRコードが支払方法として利用可能かどうか
                          qr_scan_configuration.forbidden_qr_scan_gatewaysarray[string]QRコード決済の処理に使用されない決済ゲートウェイのリスト
                          convenience_configuration.enabledbooleanコンビニがペイメント方法として利用可能かどうか
                          theme.colors.main_backgroundstring (HexColor)入力欄背景。入力フォームが表示されるエリアの背景色。デフォルトは #fafafa
                          theme.colors.secondary_backgroundstring (HexColor)ロゴとタイトルが含まれるエリアの背景色。デフォルトは #ee7a00
                          theme.colors.main_colorstring (HexColor)ヘッダーと下部のボタンの背景色。デフォルトは #fafafa
                          theme.colors.primary_textstring (HexColor)タイトル(デフォルトはストア名)の文字色。デフォルトは #fafafa
                          theme.colors.secondary_textstring (HexColor)(指定がある場合は)ウィジェットのタイトル下部に表示される説明文の文字色。デフォルトは #222222
                          theme.colors.base_textstring (HexColor)上記で指定されない他のテキストの文字色。デフォルトは #000000
                          recurring_card_charge_cvv_confirmation.enabledbooleanリカーリングトークンを使用するときに、このストアにCVV確認が必要かどうか
                          recurring_card_charge_cvv_confirmation.thresholdarray[MoneyAmount]CVV確認せずに課金可能な、ストアのデフォルト通貨での最大金額
                          supported_brandsarray[SupportedBrand]利用可能な決済ブランド

                          MoneyAmount

                          フィールドデータ型備考
                          amountnumber小数点以下の金額
                          currencystring (ISO-4217)ISO-4217形式の通貨

                          SupportedBrand

                          フィールドデータ型備考
                          brandstring対応しているブラント
                          payment_typeにより、次のいずれか
                          card: visa, mastercard, american_express, jcb, diners_club, unionpay, discover, maestro
                          qr_merchantalipay_merchant_qr, alipay_connect_mpm, pay_pay_merchant, we_chat_mpm
                          onlinealipay_online, alipay_plus_online, pay_pay_online, we_chat_online,dbarai_online
                          bank_transferaozora_bank
                          paidypaidy
                          payment_typestring次のいずれか cardqr_merchantonlinebank_transferpaidy
                          support_auth_captureboolean仮売上のキャプチャが許可されているか
                          requires_full_nameboolean名前を必須にしているか
                          support_dynamic_descriptorbooleanダイナミックディスクリプタ―が利用可能か
                          requires_cvvbooleanセキュリティコードが必須か
                          countries_allowedarray[string]許可されている国
                          supported_currenciesarray[string]許可された通貨
                          cvv_authbooleanセキュリティコード認証を行うか
                          dynamic_infoboolean分割払いが利用可能か

                          145. ウェブフック

                          本サービスで発生する各種イベントの結果は「ウェブフック」として、それぞれの指定先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(オンライン)の三単合一における「税関申告」が完了税関申告完了

                          146. 3.消費者へのURLの共有方法

                          管理画面「通知メールテンプレート」

                          メールテンプレート内に${customer_refer_link}のパラメータがある場合、支払い情報の確認・変更画面のURLが表示されます。

                          デフォルトのメールテンプレートを利用する

                          一般設定>一般>通知の「定期課金イベント発生時に通知」をONにしてください。
                          上記設定によって、定期課金関連の通知メールにURLが表示されます。

                          ※メールテンプレートのデフォルト内容はこちらを参照してください

                          独自のメールテンプレートを作成する

                          「定期課金イベント発生時に通知」の設定次第で、通知メールテンプレートの利用方法が異なります。
                          ※都度課金と定期課金を併用している場合、「定期課金イベント発生時に通知」をONし、メールの文面を分けることを推奨します

                          定期課金イベント発生時に通知利用方法
                          ONテンプレート「決済完了通知」「決済失敗」に${customer_refer_link}を追加して作成してください。
                          ※都度課金の場合は、リカーリングトークンがある場合のみURLにログインできます
                          OFFページ下記説明を参照した上で作成してください。

                          前提として、定期課金関連のメールには二種類のテンプレートが存在します。
                          サブテンプレートの文面は、メインテンプレートの${subscription_payment_details:- }として反映されます。

                          種類テンプレート名
                          メインテンプレート・定期課金作成
                          ・定期課金決済
                          ・定期課金決済失敗
                          ・定期課金の一時停止
                          サブテンプレート・定期課金詳細
                          ・回数制限つき定期課金の詳細

                          用途に合わせてテンプレートにパラメータを追加してください。

                          作成するテンプレート利用方法
                          メイン・サブ両方を独自に作成するサブテンプレート内に${customer_refer_link}を、
                          メインテンプレートに${subscription_payment_details:- }を追加してください。
                          メインのみを独自に作成する${subscription_payment_details:- }を追加してください。
                          ${subscription_payment_details:- }を追加しない場合は、${customer_refer_link}を追加してください。

                          ${customer_refer_link}を追加可能なメールテンプレート

                          •  定期課金作成
                          •  定期課金決済
                          •  定期課金決済失敗
                          •  定期課金の一時停止
                          •  定期課金のカード情報変更の案内 ※開発中のため現在は利用不可
                          •  定期課金の詳細
                          •  回数制限付き定期課金の詳細
                          •  決済完了通知
                          •  決済失敗

                          手動でURLを作成・送信

                          下記URLに店舗IDを入力して消費者に共有することで、支払い情報の確認・変更画面へアクセスできます。
                          加盟店さま側でメールアドレスを指定したい場合は、メールアドレスも入力してください。

                          方法URL
                          メールアドレスを指定しないhttps://customer.univapay.com/stores/{店舗ID}
                          メールアドレスを指定するhttps://customer.univapay.com/stores/{店舗ID}?emailAddress={メールアドレス}
                          メールアドレスおよび表示させる定期課金IDを指定するhttps://customer.univapay.com/stores/{店舗ID}?emailAddress={メールアドレス}&subscriptionId={定期課金ID}

                          管理画面「定期課金」(開発中)

                          対象の定期課金を選択し「定期課金の管理画面」のメール送信ボタンを押すと、消費者のメールアドレス宛に「定期課金のカード情報変更の案内」の通知メールが送信されます。

                          147. キャンセル - CREATE

                          キャンセルオブジェクトに対するCREATEリクエストには以下が必要です。(括弧内は入力箇所)
                          awaiting もしくは authorized 状態の課金に対してキャンセルを作成することができます。

                          • 店舗ID(URLの{storeId}部分)
                          • 課金ID(URLの{chargeId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request POST \
                          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/cancels \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --header 'Content-type: application/json'

                          利用できるパラメータ

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

                          フィールド名データ型備考
                          metadatajsonキャンセルに紐付けるメタデータ

                          Bodyの記述例

                          curl --request POST \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c2-eecd-ed24-abb8-cf4e336a1340/cancels \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --header 'Content-type: application/json'
                          --data '{"metadata": {"order_id": 1234}}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef32cc-e895-655e-8e33-e36629277b4f",
                              "charge_id": "11ef32c2-eecd-ed24-abb8-cf4e336a1340",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "status": "pending",
                              "error": null,
                              "metadata": {
                                  "order_id": 1234
                              },
                              "mode": "test",
                              "created_on": "2024-06-25T08:28:32.859366Z"
                          }

                          148. 決済設定 - リクエスト

                          148.1 決済設定 - GET

                          決済設定オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)
                          このリクエストはウィジェットを開いた際に自動的に送られ、店舗の支払いのための設定を確認することができます。
                          リンクフォーム / ウィジェットを開かなくても、アプリトークン / シークレット を指定して下記リクエストを送ることで確認可能です。

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

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/checkout_info \
                          --header 'Authorization: Bearer {jwt}'

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/checkout_info \
                          --header 'Authorization: Bearer {jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "mode": "test",
                              "recurring_token_privilege": "infinite",
                              "name": "管理画面ガイド_TEST店舗",
                              "card_configuration": {
                                  "enabled": true,
                                  "debit_enabled": true,
                                  "prepaid_enabled": true,
                                  "debit_authorization_enabled": true,
                                  "prepaid_authorization_enabled": true,
                                  "only_direct_currency": false,
                                  "forbidden_card_brands": null,
                                  "allowed_countries_by_ip": null,
                                  "foreign_cards_allowed": true,
                                  "fail_on_new_email": null,
                                  "card_limit": null,
                                  "allow_empty_cvv": false,
                                  "allow_direct_token_creation": true,
                                  "three_ds_required": false,
                                  "three_ds_address_required": true
                              },
                              "subscription_configuration": {
                                  "enabled": true
                              },
                              "installments_configuration": {
                                  "enabled": true,
                                  "card_processor": {
                                      "revolving": true,
                                      "fixed_cycle": true
                                  },
                                  "supported_payment_types": [
                                      "card",
                                      "konbini",
                                      "apple_pay",
                                      "paidy",
                                      "bank_transfer"
                                  ],
                                  "min_charge_amount": null,
                                  "max_payout_period": "P100Y",
                                  "only_with_processor": true
                              },
                              "subscription_plan_configuration": {
                                  "enabled": true,
                                  "fixed_cycle": true,
                                  "fixed_cycle_amount": true,
                                  "supported_payment_types": [
                                      "card",
                                      "konbini",
                                      "apple_pay",
                                      "paidy",
                                      "bank_transfer"
                                  ],
                                  "min_charge_amount": null,
                                  "max_payout_period": "P100Y"
                              },
                              "checkout_configuration": {
                                  "ec_email": {
                                      "enabled": true
                                  },
                                  "ec_products": {
                                      "enabled": true
                                  }
                              },
                              "qr_scan_configuration": {
                                  "enabled": true,
                                  "forbidden_qr_scan_gateways": null
                              },
                              "convenience_configuration": {
                                  "enabled": true,
                                  "expiration": "PT720H",
                                  "expiration_time_shift": {
                                      "value": "13:00:00+09:00",
                                      "enabled": false
                                  }
                              },
                              "paidy_configuration": {
                                  "enabled": true
                              },
                              "paidy_public_key": "pk_test_9bta9fm2cbvpcscddhr7qrnkkb",
                              "logo_image": null,
                              "theme": {
                                  "colors": {
                                      "main_background": "#FFFFFF",
                                      "secondary_background": "#F5F8FC",
                                      "main_color": "#4C5F85",
                                      "main_text": "#FFFFFF",
                                      "primary_text": "#4C5F85",
                                      "secondary_text": "#4C5F85",
                                      "base_text": "#4C5F85"
                                  }
                              },
                              "recurring_card_charge_cvv_confirmation": {
                                  "enabled": true,
                                  "threshold": [
                                      {
                                          "amount": 10000,
                                          "amount_formatted": 10000,
                                          "currency": "JPY"
                                      }
                                  ]
                              },
                              "online_configuration": {
                                  "enabled": false
                              },
                              "bank_transfer_configuration": {
                                  "enabled": true,
                                  "match_amount": "disabled",
                                  "expiration": "PT168H",
                                  "expiration_time_shift": {
                                      "value": "11:00:00+09:00",
                                      "enabled": true
                                  },
                                  "virtual_bank_accounts_threshold": 5,
                                  "virtual_bank_accounts_fetch_count": 10,
                                  "default_extension_period": "PT24H",
                                  "maximum_extension_period": "PT720H",
                                  "automatic_extension_enabled": false,
                                  "charge_request_notification_enabled": true,
                                  "charge_request_canceled_notification_enabled": true,
                                  "charge_expired_notification_enabled": true,
                                  "deposit_received_notification_enabled": true,
                                  "deposit_insufficient_notification_enabled": true,
                                  "deposit_exceeded_notification_enabled": true,
                                  "extension_notification_enabled": true,
                                  "remind_notification_period": "PT72H",
                                  "remind_notification_enabled": true
                              },
                              "supported_brands": [
                                  {
                                      "payment_type": "konbini",
                                      "brand": "sunkus",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "online",
                                      "brand": "alipay_plus_online",
                                      "online_brand": "alipay_plus_online",
                                      "dynamic_info": true,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "yamazaki_daily_store",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "family_mart",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "mini_stop",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "pay_easy",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "online",
                                      "brand": "alipay_online",
                                      "online_brand": "alipay_online",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "circle_k",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "card",
                                      "brand": "mastercard",
                                      "card_brand": "mastercard",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": true,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": true,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "seven_eleven",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "seico_mart",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "online",
                                      "brand": "d_barai_online",
                                      "online_brand": "d_barai_online",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "daily_yamazaki",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "lawson",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "card",
                                      "brand": "jcb",
                                      "card_brand": "jcb",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": true,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": true,
                                      "installment_capable": true
                                  },
                                  {
                                      "payment_type": "card",
                                      "brand": "visa",
                                      "card_brand": "visa",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": true,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": true,
                                      "installment_capable": true
                                  },
                                  {
                                      "payment_type": "paidy",
                                      "brand": "paidy",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "card",
                                      "brand": "diners_club",
                                      "card_brand": "diners_club",
                                      "dynamic_info": false,
                                      "support_auth_capture": false,
                                      "requires_full_name": false,
                                      "requires_cvv": true,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": true,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "card",
                                      "brand": "american_express",
                                      "card_brand": "american_express",
                                      "dynamic_info": false,
                                      "support_auth_capture": false,
                                      "requires_full_name": false,
                                      "requires_cvv": true,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": true,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "online",
                                      "brand": "pay_pay_online",
                                      "online_brand": "pay_pay_online",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "bank_transfer",
                                      "brand": "aozora_bank",
                                      "dynamic_info": false,
                                      "support_auth_capture": false,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "online",
                                      "brand": "we_chat_online",
                                      "online_brand": "we_chat_online",
                                      "dynamic_info": true,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  }
                              ]
                          }

                          149. キャンセル - GET

                          キャンセルオブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

                          • 店舗ID(URLの{storeId}部分)
                          • 課金ID(URLの{chargeId}部分)
                          • キャンセルされた課金ID(URLの{id}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/cancels/{id} \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。

                          フィールド名データ型備考
                          pollingbooleanキステータスが pending(初期ステータス)から別のステータスに変更されるまで、課金のステータスを内部でポーリングするようにAPIに指示する

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c2-eecd-ed24-abb8-cf4e336a1340/cancels/11ef32cc-e895-655e-8e33-e36629277b4f \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef32cc-e895-655e-8e33-e36629277b4f",
                              "charge_id": "11ef32c2-eecd-ed24-abb8-cf4e336a1340",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "status": "successful",
                              "error": null,
                              "metadata": {
                                  "order_id": 1234
                              },
                              "mode": "test",
                              "created_on": "2024-06-25T08:28:32.859366Z"
                          }

                          150. テンプレートの種類

                          決済完了

                          決済が成功した時に送信されます。仮売上のキャプチャ、返金を行ったときもこのメールが送信されます。
                          ${transaction_type}の部分が処理によって「課金」もしくは「返金」と表示されます。

                          件名
                          ${store} ${transaction_type}のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、${transaction_type}が行われましたのでご確認ください。

                          [支払方法 ] ${payment_type}(${payment_brand})
                          [課金ID  ] ${charge_id}
                          [課金日時 ] ${date}
                          [${transaction_type}金額 ] ${amount}
                          [請求名  ] ${descriptor}

                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          決済失敗

                          決済が失敗したときに送信されます。コンビニ決済の入金期限が切れたときもこのメールを送信されます

                          件名
                          ${store} 課金失敗のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の課金が失敗いたしましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法 ] ${payment_type}(${payment_brand})
                          [課金ID  ] ${charge_id}
                          [課金日時 ] ${date}
                          [課金金額 ] ${amount}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          リカーリング作成

                          クレジットカード決済のリカーリングトークンの作成(支払い情報の登録)が成功した時に送信されます
                          通常課金や定期課金で「カード登録(リカーリングトークン作成)」をONにした時にも送信されます

                          件名
                          ${store} お支払い情報登録のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          ご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、${payment_type}情報が登録されましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法 ] ${payment_type}(${payment_brand})
                          [名義   ] ${card_holder_name}
                          [更新日  ] ${date}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          リカーリングトークンのCVV認証失敗

                          カード登録(定期課金の初回カード登録も含む)のみ行う処理で、CVV認証(セキュリティコード認証)が失敗した時に送信されます

                          件名
                          ${store} お支払い情報登録失敗のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          ご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、${payment_type}情報登録が失敗しましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法] ${payment_type}(${payment_brand})
                          [日時  ] ${date}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          オーソリの実行

                          仮売上に成功した時に送信されます

                          件名
                          ${store} 仮売上のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          ご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、仮売上に成功しましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法   ] ${payment_type}(${payment_brand})
                          [名義     ] ${card_holder_name}
                          [メールアドレス] ${email_address}
                          [課金ID    ] ${charge_id}
                          [課金金額   ] ${amount}
                          [日時     ] ${date}
                          [請求名    ] ${descriptor}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          オーソリの実行

                          仮売上に失敗した時に送信されます

                          件名
                          ${store} 仮売上失敗のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          ご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、仮売上に失敗しましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法   ] ${payment_type}(${payment_brand})
                          [名義     ] ${card_holder_name}
                          [メールアドレス] ${email_address}
                          [課金ID    ] ${charge_id}
                          [課金金額   ] ${amount}
                          [日時     ] ${date}
                          [請求名    ] ${descriptor}
                          [エラーコード ]${error_code}
                          [エラー内容  ]${error_message}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          オーソリ済課金のキャンセル

                          仮売上をキャンセルした時に送信されます

                          件名
                          ${store} 課金キャンセルのお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          ご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、課金がキャンセルされましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法   ] ${payment_type}(${payment_brand})
                          [課金ID    ] ${charge_id}
                          [キャンセルID ] ${cancel_id}
                          [キャンセル金額] ${amount}
                          [日時     ] ${date}
                          [請求名    ] ${descriptor}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金作成

                          初回の定期課金作成が成功した時に送信されます

                          件名
                          ${store} 定期課金作成のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、定期課金が登録されましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法  ] ${payment_type}(${payment_brand})
                          [課金ID   ] ${charge_id}
                          [課金日時  ] ${date}
                          [請求名   ] ${descriptor}
                          [定期課金ID ] ${subscription_id}
                          [課金金額  ] ${amount}
                          [次回課金金額] ${subscription_next_payment_amount:- }
                          [次回課金日 ] ${subscription_next_date:-次回課金なし}
                          [課金サイクル]${subscription_period}
                          ${subscription_payment_details:- }
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金決済

                          定期課金の2回目以降の決済が成功した時に送信されます
                          ${transaction_type}の部分が処理によって「課金」もしくは「返金」と表示されます

                          件名
                          ${store} 定期課金の${transaction_type}成功のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、${payment_type}の${transaction_type}が行われましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法  ] ${payment_type}(${payment_brand})
                          [課金ID   ] ${charge_id}
                          [課金日時  ] ${date}
                          [請求名   ] ${descriptor}
                          [定期課金ID ] ${subscription_id}
                          [課金金額  ] ${amount}
                          [次回課金金額] ${subscription_next_payment_amount:- }
                          [次回課金日 ] ${subscription_next_date:-次回課金なし}
                          [課金サイクル]${subscription_period}
                          ${subscription_payment_details:- }
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金決済失敗

                          初回課金金額がある定期課金の作成 および 定期課金の2回目以降の決済が失敗した時に送信されます

                          件名
                          ${store} 定期課金の${transaction_type}失敗のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、${payment_type}の${transaction_type}が失敗いたしましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法 ] ${payment_type}(${payment_brand})
                          [課金ID  ] ${charge_id}
                          [課金日時 ] ${date}
                          [定期課金ID ] ${subscription_id}
                          [課金金額  ] ${amount}
                          [次回課金金額] ${subscription_next_payment_amount:- }
                          [次回課金日 ] ${subscription_next_date:-次回課金なし}
                          [課金サイクル]${subscription_period}
                          ${subscription_payment_details:- }
                          ※初回の決済に失敗した場合は、もう一度店舗のフォームから決済処理を行ってください。

                          [エラーコード]${error_code:- }
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金一時停止

                          定期課金の一時停止をした時に送信されます

                          件名
                          ${store} 定期課金停止のお知らせ
                          本文

                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。
                          決済情報をご確認のうえ、大切に保管してください。
                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。
                          下記の通り、定期課金の一時停止処理が行われましたのでご確認ください。
                          -------------------------------------------------------------------------------------------
                          [支払方法  ] ${payment_type}(${payment_brand})
                          [停止処理日 ] ${date}
                          [請求名   ] ${descriptor}
                          [定期課金ID ] ${subscription_id}
                          ${subscription_payment_details:- }
                          -------------------------------------------------------------------------------------------
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金永久停止

                          定期課金の永久停止をした時に送信されます

                          件名
                          ${store} 定期課金停止のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。
                          決済情報をご確認のうえ、大切に保管してください。
                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。
                          下記の通り、定期課金の永久停止処理が行われましたのでご確認ください。
                          -------------------------------------------------------------------------------------------
                          [支払方法  ] ${payment_type}(${payment_brand})
                          [停止処理日 ] ${date}
                          [請求名   ] ${descriptor}
                          [定期課金ID ] ${subscription_id}
                          -------------------------------------------------------------------------------------------
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金のカード情報変更の案内

                          ※開発中のため現在利用不可
                          管理画面の定期課金詳細にあるボタン(開発中)から、支払い情報の確認・変更画面を案内したときに消費者に送信されます

                          件名
                          ${store} 定期課金のカード情報変更のご案内
                          本文
                          =========================================================
                          このメールは定期課金にお支払い情報が登録されているメールアドレス宛に送信しております。

                          ご確認のうえ、大切に保管してください。

                          =========================================================

                          いつも${store}をご利用いただき誠にありがとうございます。

                          定期課金のお支払い情報更新手続きは下記URLから行ってください。
                          ——————————————————————————————-
                          ${customer_refer_link}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金のカード情報変更完了

                          定期課金に登録されているカード情報が変更された時に送信されます

                          件名
                          ${store} 定期課金の${payment_type}情報更新のお知らせ
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          ご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、定期課金の${payment_type}情報が更新されましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法 ] ${payment_type}(${payment_brand})
                          [名義   ] ${card_holder_name}
                          [更新日  ] ${date}
                          [定期課金ID] ${subscription_id}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:- }
                          [メールアドレス] ${contact_email:- }

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          定期課金の詳細

                          回数無制限の定期課金の情報が含まれています
                          このテンプレートは定期課金関連のテンプレートに${subscription_payment_details}を入力すると反映させられます

                          [定期課金種類]${subscription_type}
                          [課金回数]${subscription_cycles_count}回目
                          ——————————————————————————————-
                          定期課金のお支払い情報更新手続きは下記URLから行えます。
                          ${customer_refer_link:- }
                          ※ご利用店舗様によってはURLから更新できない場合がございます。
                           詳しくはご利用店舗様へお問合せくださいませ。

                          回数制限付き定期課金の詳細

                          回数制限付き定期課金の情報が含まれています
                          このテンプレートは定期課金関連のテンプレートに${subscription_payment_details}を入力すると反映させられます

                          [定期課金種類]${subscription_type}
                          [課金回数]${subscription_cycles_count}回目
                          ——————————————————————————————-
                          定期課金のお支払い情報更新手続きは下記URLから行えます。
                          ${customer_refer_link:- }
                          ※ご利用店舗様によってはURLから更新できない場合がございます。
                           詳しくはご利用店舗様へお問合せくださいませ。

                          分割払いの詳細

                          分割払いの情報が含まれています
                          このテンプレートは定期課金関連のテンプレートに${subscription_payment_details}を入力すると反映させられます

                          [定期課金種類]${subscription_type}
                          [分割回数]${subscription_total_cycles_count}回

                          決済フォーム支払い発行

                          オプションでリンクフォームのメール送信機能を利用するときに送信されます

                          件名
                          決済リンクよりお支払いをお願いします${store}

                          本文
                          =========================================================
                          ご注文ありがとうございます。
                          ${store}でございます。

                          内容をご確認の上、以下のURLから決済画面へお進みください。
                          ——————————————————————————————-
                          [URL期限 ] ${date}
                          [金額 ] ${amount}
                          [決済リンク]${link}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はお問い合わせ先情報へお願いいたします。

                          決済フォームカード登録発行

                          リンクフォームのメール送信機能を利用するとき、課金を行わなずカード登録のみ行うリンクフォームの場合はこのメールが送信されます

                          件名
                          決済リンクよりお支払いをお願いします${store}

                          本文
                          =========================================================
                          ご連絡ありがとうございます。
                          ${store}でございます。

                          内容をご確認の上、以下のURLからカード登録画面へお進みください。
                          ——————————————————————————————-
                          [URL期限 ] ${date}
                          [決済リンク]${link}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はお問い合わせ先情報へお願いいたします。

                          振込期限切れ(督促なし)
                          銀行振込の振込期限が切れたときに送信されます

                          件名
                          ${store} お振込期限切れについて
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記お申込みに関しまして、お振込期限を過ぎましたので 無効となりました事をお知らせいたします。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}
                          [金額   ] ${amount}
                          [入金額  ] ${deposit_amount}
                          ※入金がある場合は、下記までお問い合わせください。
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          振込期限切れ(督促有り)

                          銀行振込の振込期限が切れた時、再度振込期限を指定して案内する設定の場合に送信されます

                          件名
                          ${store} お振込のご確認
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記お申込みに関しまして、お振込期限が過ぎておりますが、
                          本日時点でご入金が確認できておりません。

                          お手数ではございますが、内容をご確認の上お振込をお願いいたします。

                          なお、本通知と行き違いでお振込みいただいている場合は、
                          何卒ご容赦くださいますようお願い申し上げます。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}

                          [入金額  ] ${deposit_amount}
                          [差額   ] ${deposit_needed}

                          [銀行名  ] ${bank_name}
                          [支店番号 ] ${bank_branch_code}
                          [支店名  ] ${bank_branch_name}
                          [口座種別 ] 普通
                          [口座番号 ] ${bank_account_number}
                          [口座名義 ] ${bank_account_holder_name}

                          [最終期日 ] ${date}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:-メール対応のみ}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          銀行振込 申込完了

                          銀行振込の申込が行われたときに送信されます

                          件名
                          ${store}  銀行振込 銀行振込のお申込を受け付けました
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          内容をご確認の上、期日までにお振込をお願いいたします。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}
                          [金額   ] ${amount}

                          [銀行名  ] ${bank_name}
                          [支店番号 ] ${bank_branch_code}
                          [支店名  ] ${bank_branch_name}
                          [口座種別 ] 普通
                          [口座番号 ] ${bank_account_number}
                          [口座名義 ] ${bank_account_holder_name}

                          [振込期日 ] ${date}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          銀行振込 キャンセル

                          銀行振込の申込を加盟店さまが取り消した時に送信されます

                          件名
                          ${store} 銀行振込 お申込がキャンセルされました
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記お申込みがキャンセルとなりましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}
                          [金額   ] ${amount}

                          [キャンセル日] ${date}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:-メール対応のみ}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          銀行振込 入金完了

                          銀行振込で消費者が入金したときに送信されます

                          件名
                          ${store} お振込を確認しました
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、口座へのお振込を確認いたしましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}
                          [金額   ] ${amount}

                          [入金額  ] ${deposit_amount}
                          [入金日時 ] ${date}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          銀行振込 不足入金

                          銀行振込で消費者の入金金額が不足していたときに送信されます

                          件名
                          ${store} お振込金額の不足について
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。
                          下記お申込みに関しまして、お振込金額が不足しております。

                          お手数ではございますが、内容をご確認いただき、
                          差額分のお振込をお願いいたします。

                          なお、本通知と行き違いでお振込みいただいている場合は、
                          何卒ご容赦くださいますようお願い申し上げます。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}
                          [金額   ] ${amount}
                          [入金額  ] ${deposit_amount}
                          [入金日時 ] ${date}

                          [差額   ] ${deposit_needed}

                          [銀行名  ] ${bank_name}
                          [支店番号 ] ${bank_branch_code}
                          [支店名  ] ${bank_branch_name}
                          [口座種別 ] 普通
                          [口座番号 ] ${bank_account_number}
                          [口座名義 ] ${bank_account_holder_name}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:-メール対応のみ}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          銀行振込 入金完了(超過)

                          銀行振込で消費者の入金金額が超過していたときに送信されます

                          件名
                          ${store} お振込を確認しました(金額超過)
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記の通り、口座へのお振込を確認いたしましたのでご確認ください。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}

                          [入金額  ] ${deposit_amount}
                          [入金日時 ] ${date}

                          [超過金額 ] ${exceeded_amount}
                          ※上記金額が本来お振込いただく金額より超過で入金されています。
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:-メール対応のみ}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          銀行振込 振込期限の通知

                          振込期限日が近づくとこのメールを送信します
                          一般設定で送信するかどうか、何日前に送信するかを設定できます

                          件名
                          ${store} お振込期限について
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。
                          下記お申込みに関しまして、お振込期限が近づいております。
                          お手数ではございますが、内容をご確認の上お振込をお願いいたします。

                          なお、本通知と行き違いでお振込みいただいている場合は、
                          何卒ご容赦くださいますようお願い申し上げます。
                          ——————————————————————————————-
                          [支払方法 ] 銀行振込
                          [課金ID  ] ${charge_id}
                          [金額   ] ${amount}
                          [入金額  ] ${deposit_amount}

                          [差額   ] ${deposit_needed}
                          [振込期日 ] ${date}

                          [銀行名  ] ${bank_name}
                          [支店番号 ] ${bank_branch_code}
                          [支店名  ] ${bank_branch_name}
                          [口座種別 ] 普通
                          [口座番号 ] ${bank_account_number}
                          [口座名義 ] ${bank_account_holder_name}

                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          コンビニ決済のご案内

                          コンビニ決済の申込が行われたときに送信されます

                          件名
                          ${store} コンビニ決済のお申し込みを受け付けました
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          内容をご確認の上、期日までにご入金をお願いいたします。
                          ——————————————————————————————-
                          [支払方法 ] コンビニ決済
                          [コンビニ名] ${payment_brand}
                          [課金ID  ] ${charge_id}
                          [金額 ] ${amount}
                          [入金期日 ] ${date}

                          [(各コンビニ情報の名称)] ${konbini_payment_details}
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          コンビニ決済の取り消し

                          コンビニ決済の申込を加盟店側で取り消したときに送信されます

                          件名
                          ${store} お支払いのキャンセルについて
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。
                          下記お申込みに関しまして、キャンセルされましたので
                          無効となりました事をお知らせいたします。
                          ——————————————————————————————-
                          [支払方法 ] コンビニ決済
                          [コンビニ名] ${payment_brand}
                          [課金ID  ] ${charge_id}
                          [金額 ] ${amount}

                          ※入金がある場合は、下記までお問い合わせください。
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          コンビニ決済 期限切れ

                          コンビニ決済の入金期限が切れたときに送信されます

                          件名
                          ${store} お支払期限切れについて
                          本文
                          =========================================================
                          このメールは決済されたメールアドレス宛に自動的に送信しております。

                          決済情報をご確認のうえ、大切に保管してください。

                          =========================================================

                          この度は、${store}をご利用いただき誠にありがとうございます。

                          下記お申込みに関しまして、お支払期限を過ぎましたので
                          無効となりました事をお知らせいたします。
                          ——————————————————————————————-
                          [支払方法 ] コンビニ支払い
                          [コンビニ名] ${payment_brand}
                          [課金ID  ] ${charge_id}
                          [金額 ] ${amount}
                          [入金期限 ] ${date}

                          ※入金された場合は、下記までお問い合わせください。
                          ——————————————————————————————-
                          ${store} お問い合わせ先情報
                          [電話番号   ] ${contact_phone_local:-メール対応のみ}
                          [メールアドレス] ${contact_email}

                          ※このメールは送信専用のため、このアドレスへご連絡いただいても返信できかねます。
                          ご連絡はご利用の商品/サービス提供者様へお願いいたします。

                          コンビニ決済の詳細

                          各コンビニエンスストアごとの、消費者が入金するための情報が含まれています。このテンプレートは「コンビニ決済のご案内」に含まれ、選択したコンビニエンスストアのテンプレート情報が入ります。

                          151. ウェブフック - 概要

                          “webhook”オブジェクトのデータ構造

                          レスポンスで返却されるフィールドおよび値の詳細は、以下を参照してください。
                          その他data内のフィールドおよび値は、イベントごとのリソースタイプによって異なります。こちらから確認して下さい。

                          フィールドデータ型備考
                          id半角英数(UUID)ウェブフックを識別するためのUUID
                          merchant_id半角英数(UUID)ウェブフックが帰属する「加盟店」のUUID
                          store_id半角英数(UUID)ウェブフックが帰属する「店舗」のUUID
                          triggers配列(テキスト)ウェブフック送信契機となるイベント
                          イベント名の一覧を参照
                          複数指定可能
                          url半角英数(URLとして有効なもの)ウェブフックの送信先
                          auth_token半角英数ウェブフック実行時にヘッダーに含める認証用の値
                          authorizationというフィールド名を利用
                          active真偽作成時の有効性
                          trueで有効、falseで無効
                          created_onISO-8601
                          YYYY-MM-DDThh:mm:ss
                          ウェブフックの作成日
                          updated_onISO-8601
                          YYYY-MM-DDThh:mm:ss
                          ウェブフックの更新日

                          ウェブフックのサンプル(body)

                          課金成功

                          {
                            "id": "11ef1288-37b0-2f15-a097-d3a0d4243d4c",
                            "event": "charge_finished",
                            "data": {
                              "id": "11ef1288-399b-eb84-a215-038628c5c460",
                              "store_id": "11ecda54-12g0-1c78-bd0f-73aa270d700f",
                              "transaction_token_id": "11ef1118-3766-4fdc-baed-b72c5ac3e0ba",
                              "transaction_token_type": "one_time",
                              "subscription_id": null,
                              "requested_amount": 100,
                              "requested_currency": "JPY",
                              "requested_amount_formatted": 100,
                              "charged_amount": 100,
                              "charged_currency": "JPY",
                              "charged_amount_formatted": 100,
                              "fee_amount": null,
                              "fee_currency": null,
                              "fee_amount_formatted": null,
                              "only_direct_currency": true,
                              "capture_at": null,
                              "descriptor": null,
                              "descriptor_phone_number": null,
                              "status": "successful",
                              "metadata": {},
                              "mode": "test",
                              "created_on": "2024-05-15T06:56:12.852465Z",
                              "redirect": {}
                            },
                            "created_on": "2024-05-15T06:56:13.140163783Z",
                            "webhook_id": "11ee8cf5-2be5-67d8-bc18-7b7c584c5735",
                            "successful": true,
                            "fired_on": "2024-05-15T06:56:13.092717474Z"
                          }

                          課金失敗

                          {
                            "id": "11ef1288-37b0-2f15-a097-d3a0d7843d4c",
                            "event": "charge_finished",
                            "data": {
                              "id": "11ef1288-399b-eb84-a215-038628c5c460",
                              "store_id": "11ecda54-12g0-1c78-bd0f-73aa270d700f",
                              "transaction_token_id": "11ef1118-3766-4fdc-baed-b72c5ac3e0ba",
                              "transaction_token_type": "one_time",
                              "subscription_id": null,
                              "requested_amount": 100,
                              "requested_currency": "JPY",
                              "requested_amount_formatted": 100,
                              "charged_amount": 100,
                              "charged_currency": "JPY",
                              "charged_amount_formatted": 100,
                              "fee_amount": null,
                              "fee_currency": null,
                              "fee_amount_formatted": null,
                              "only_direct_currency": true,
                              "capture_at": null,
                              "descriptor": null,
                              "descriptor_phone_number": null,
                              "status": "failed",
                              "error": {
                                "code": 309,
                                "message": "Test charge failed purposely",
                                "details": "Test charge failed purposely"
                              },
                              "metadata": {},
                              "mode": "test",
                              "created_on": "2024-05-15T06:56:12.852465Z",
                              "redirect": {}
                            },
                            "created_on": "2024-05-15T06:56:13.140163783Z",
                            "webhook_id": "11ee8cf5-2be5-67d8-bc18-7b7c584c5735",
                            "successful": true,
                            "fired_on": "2024-05-15T06:56:13.092717474Z"
                          }

                          152. キャンセル - LIST

                          キャンセルオブジェクトに対するLISTリクエストには以下が必要です。(括弧内は入力箇所)
                          awaiting もしくは authorized 状態の課金に対して行われたキャンセルの一覧を取得できます。

                          • 店舗ID(URLの{storeId}部分)
                          • 課金ID(URLの{chargeId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/cancels \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32c2-eecd-ed24-abb8-cf4e336a1340/cancels \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "items": [
                                  {
                                      "id": "11ef32cc-e895-655e-8e33-e36629277b4f",
                                      "charge_id": "11ef32c2-eecd-ed24-abb8-cf4e336a1340",
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "status": "successful",
                                      "error": null,
                                      "metadata": {
                                          "order_id": 1234
                                      },
                                      "mode": "test",
                                      "created_on": "2024-06-25T08:28:32.859366Z"
                                  },
                                {
                                      "id": "11ef32ce-ce90-3272-9ec3-c35d8985dfc2",
                                      "charge_id": "11ef32c2-eecd-ed24-abb8-cf4e336a1340",
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "status": "successful",
                                      "error": null,
                                      "metadata": {},
                                      "mode": "test",
                                      "created_on": "2024-06-25T08:42:08.198036Z"
                                  }
                              ],
                              "has_more": false
                          }

                          153. パラメータ

                          パラメータを利用することで、消費者が行った処理ごとに結果の値を動的に反映させることができます。
                          テンプレートごとに利用できるパラメータは異なるため、各テンプレートの作成画面から確認してください。

                          各種パラメーターのご案内

                          パラメータ説明
                          ${date}処理日時
                          ※下記テンプレートのみ入金期限日時を表示
                          ・銀行振込(申込完了 / 振込期限切れ(督促有り) / 振込期限の通知)
                          ・コンビニ決済のご案内
                          ${amount}金額
                          ※定期課金の場合は1回あたりの課金金額、分割の場合は総額を表示
                          ${payment_type}支払方法 
                          ※カード、オンライン決済など
                          ${payment_brand}支払ブランド 
                          ※Visa、MasterCard、PayPayオンラインなど
                          ${transaction_type}課金 or 返金
                          ${store}店舗名
                          ${charge_id}課金ID
                          ${card_holder_name}カード名義 
                          ${email_address}顧客メールアドレス
                          ${descriptor}利用明細に記載される名称
                          ※テストモードの場合は機能せず、パラメータをそのまま表示
                          ${contact_email}連絡先メールアドレス
                          ${contact_phone}連絡先電話番号
                          ${charge_metadata}課金時に付与されたメタデータ
                          ${token_metadata}トークン作成時に付与されたメタデータ
                          ${subscription_id}定期課金ID
                          ${subscription_period}定期課金のサイクル
                          ${subscription_next_date}定期課金の次回課金日
                          ${subscription_initial_amount}定期課金の初回課金額
                          ${subscription_amount}回数無制限の定期課金:1回あたりの課金金額
                          回数制限付き定期課金・分割払い:支払いの総額
                          ${subscription_payment_details}定期課金の詳細
                          ・定期課金種類
                          ・課金回数/分割回数
                          ${customer_refer_link}カード情報変更/停止URL
                          ${link}決済フォームor支払いに必要な情報のリンク
                          ${customer_name}顧客名
                          ${bank_accout_number}口座番号
                          ${bank_branch_code}支店番号
                          ${bank_branch_name}支店名
                          ${bank_account_type}口座の種類
                          ${bank_account_holder_name}振込先口座名
                          ${bank_name}振込先銀行名
                          ${deposit_amount}入金額
                          ${deposit_needed}不足金額
                          ${exeed_amount}超過入金額
                          ${konbini_payment_details}コンビニ支払い情報詳細
                          ${konbini_transaction_id}コンビニ支払い番号など
                          ${error_code}エラーコード
                          ${error_message}エラー内容
                          ※決済サービスによっては利用できないパラメータもございます

                          154. 応用的なパラメータの利用方法

                          パラメータによっては、メタデータなど1つの項目に複数の値が存在したり、処理の種類によりパラメータに値が入らない場合があります。
                          こういった場合にパラメータ内でより細かい指定をすることで、パラメータや複数メタデータをそのままメール本文に反映するのを防ぐことができます。

                          • パラメータのデフォルト値を定義する
                            ${parameter:-(デフォルト値)} を使用して下さい
                            (parameter)に値が無ければ、指定したデフォルト値が表示されます。
                            値が無いときに何も表示させたくない場合は、デフォルト値に空白文字を指定してください。
                          • 特定のメタデータの値のみを表示する
                            ${charge_metadata.(キー)},${token_metadata.(キー)}の形式で指定してください。

                          表示させたいメタデータの指定 例

                          パラメータメールに反映される情報
                          ${subscription_next_date:-無し}次回以降に支払いが残っている場合:2024/08/01
                          今回の支払いが最後だった場合:無し
                          ${charge_metadata.univapay-product-names}
                          または
                          ${token_metadata.univapay-product-names}
                          商品名
                          ${charge_metadata.univapay-phone-number}
                          または
                          ${token_metadata.univapay-phone-number}
                          電話番号

                          ${token_metadata.(キー)}の利用が必須のパターン

                          下記処理の場合は${charge_metadata.(キー)}を指定してもメタデータが表示されません。

                          • リカーリング課金
                          • CSV課金
                          • リカーリングトークン作成
                          • カード情報変更時

                          商品ごとに通知メールの文面を分ける

                          商品機能をご利用にはオプション契約が必要になります。

                          商品ごとにメタデータを付与している場合、${charge_metadata.キー:-(空白)} とすることで、指定したメタデータの値のみメール文面に反映させるような使い方ができます。
                          商品を利用した場合のみ表示したいメタデータの値が表示され、商品を利用しない決済の場合は空白になります。

                          ①商品にメタデータを付与
                           商品ごとにメールで表示させたい文章をメタデータとして追加します。

                          ②通知メールテンプレートを編集 
                           商品メタデータのキーをproduct-text1とする場合、
                          メール通知テンプレート内のタグを ${charge_metadata.product-text1:-}
                          とすることで、メールの各箇所に商品別のメール文章のみを表記することができます。

                          ③通知メールでの反映を確認
                           商品ごとに異なる文章が表示され、商品を指定しない決済の時はメールに何も表示されないことが確認できれば問題ありません。

                          155. キャンセル - UPDATE

                          キャンセルオブジェクトに対するUPDATEリクエストには以下が必要です。(括弧内は入力箇所)
                          キャンセルした時に付与したメタデータを編集することができます。

                          • 店舗ID(URLの{storeId}部分)
                          • 課金ID(URLの{chargeId}部分)
                          • キャンセルされた課金ID(URLの{id}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Header{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request PATCH \
                          --url https://api.univapay.com/stores/{storeId}/charges/{chargeId}/cancels/{id} \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --header 'Content-type: application/json'

                          利用できるパラメータ

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

                          フィールド名データ型備考
                          metadatajsonキャンセルに紐付けるメタデータ

                          Bodyの記述例

                          curl --request PATCH \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/charges/11ef32ce-c739-9e0a-9ada-37dba0724131/cancels/11ef32ce-ce90-3272-9ec3-c35d8985dfc2 \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --header 'Content-type: application/json'
                          --data '{"metadata": {"order_id": 1234, "reason": "expired"}}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef32ce-ce90-3272-9ec3-c35d8985dfc2",
                              "charge_id": "11ef32ce-c739-9e0a-9ada-37dba0724131",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "status": "successful",
                              "error": null,
                              "metadata": {
                                  "reason": "expired",
                                  "order_id": 1234
                              },
                              "mode": "test",
                              "created_on": "2024-06-25T08:42:08.198036Z"
                          }

                          156. ウェブフック - リクエスト

                          156.1 ウェブフック - GET

                          ウェブフックオブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)
                          ウェブフックIDを指定しない場合、クエリパラメータでフィルタリングすることで条件に当てはまるウェブフックの一覧を取得します。
                          店舗を指定したウェブフック情報を取得する場合 merchants/{merchantId} は省略可能です。

                          • 加盟店ID(URLの{merchantId}部分)
                          • 店舗ID(URLの{storeId}部分)
                          • ウェブフックID(URLの{webhookId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/merchants/{merchantId}/stores/{storeId}/webhooks/{webhookId} \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          記述例(merchantIdの指定を省略)

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/webhooks/11ef1809-ad25-f160-9093-4f3cee241eb0 \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef1809-ad25-f160-9093-4f3cee241eb0",
                              "platform_id": "11e7a7eb-0ef8-b0c6-bd54-f7a2646e6c47",
                              "merchant_id": "11edf541-548f-ad70-8bc2-d34ca468c664",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "triggers": [
                                  "charge_finished",
                                  "refund_finished"
                              ],
                              "url": "https://webhook.URL/",
                              "active": true,
                              "created_on": "2024-05-22T07:05:31.049021Z",
                              "updated_on": "2024-05-22T08:15:49.488255Z"
                          }

                          156.2 ウェブフック - UPDATE

                          ウェブフックオブジェクトに対するUPDATEリクエストには以下が必要です。(括弧内は入力箇所)
                          通知失敗などによって停止したウェブフックを再開処理する場合はこのリクエストをご利用ください。
                          店舗を指定したウェブフック情報を取得する場合 merchants/{merchantId} は省略可能です。

                          • 加盟店ID(URLの{merchantId}部分)
                          • 店舗ID(URLの{storeId}部分)
                          • ウェブフックID(URLの{webhookId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request PATCH \
                          --url https://api.univapay.com/merchants/{merchantId}/stores/{storeId}/webhooks/{wenbhookId} \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --header 'Content-type: application/json'

                          利用できるパラメータ

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

                          フィールドデータ型備考
                          activebooleanウェブフックのステータス
                          trueもしくはfalse
                          urlstringウェブフック通知先のURL
                          triggersstringイベントのトリガー
                          詳細はこちら
                          auth_tokenstringAuthorizationヘッダー

                          Bodyの記述例

                          curl --request PATCH \ 
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/webhooks/11ef1809-ad25-f160-9093-4f3cee241eb0 \ 
                          --header 'Authorization: Bearer {secret}.{jwt}' \ 
                          --header 'content-type: application/json' \ 
                          --data '{"active": "false"}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef1809-ad25-f160-9093-4f3cee241eb0",
                              "platform_id": "11e7a7eb-0ef8-b0c6-bd54-f7a2646e6c47",
                              "merchant_id": "11edf541-548f-ad70-8bc2-d34ca468c664",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "triggers": [
                                  "charge_finished",
                                  "refund_finished"
                              ],
                              "url": "https://webhook.URL/",
                              "active": false,
                              "created_on": "2024-05-22T07:05:31.049021Z",
                              "updated_on": "2024-06-25T09:41:56.235574Z"
                          }

                          157. エラーコード - 概要

                          本サービスで発生するエラーは、「APIリクエストエラー」と「ペイメントエラー」に分けられます。

                          APIリクエストエラーは、何らかの理由でAPIの呼び出しが正しく行えなかったことを表します。
                          ペイメントエラーは、API呼び出しが正常に行えたが、カード会社やセンター等、外部のシステムでの処理が失敗した場合に発生します。

                          多くの場合、以下のJSONの形式で詳細なエラー情報が提供されます。

                          項目意味記法代表例
                          statusレスポンスの種別半角英error
                          codeエラーコード半角英
                          アッパースネークケース
                          (UPPER_SNAKE_CASE)
                          表を参照
                          errorsエラー詳細をネスト
                          fieldエラー原因となったパラメータのフィールド名
                          (errorsにネストされたエラー詳細)
                          ローワースネークケース
                          (lower_snake_case)
                          reasonネストされたエラーの詳細
                          (errorsにネストされたエラー詳細)
                          アッパースネークケース
                          (UPPER_SNAKE_CASE)
                          または英文で上限や下限の提示

                          APIリクエストエラー

                          このエラーは APIリクエストが正常に受け付けられなかったことを意味し、HTTP ステータスコードが 4xx もしくは 5xx 系統で返されます。

                          HTTP ステータス内容
                          400 Bad Requestsリクエストの内容に問題があります
                          詳細はボディのエラー情報に記載
                          401 Unauthorized認証ができませんでした
                          Authorization ヘッダが無いか、内容に問題あり
                          403 Forbiddenリクエストを実行する為の権限なし
                          404 Not Found指定されたパス、もしくはリソースIDが存在しない
                          429 Too Many Requestsレート制限の上限に達した
                          500 Internal Server Error本サービスのシステム内部で予期しないエラーが発生
                          この場合、処理の一部は実行されている可能性があります

                          例:HTTPステータスコードのみの場合

                          HTTP/1.1 429 Too Many Requests
                          ...
                          Content-Length: 0

                          例:JSONのエラー情報が返され、エラーコードのみの場合

                          HTTP/1.1 400 Bad Requests
                          ...
                          Content-Type: application/json
                          ...
                          
                          {
                              status: "error",
                              code: "NON_UNIQUE_ACTIVE_TOKEN"
                              errors: []
                          }

                          例:JSONのエラー情報が返され、リクエストパラメータに関して詳細なエラー理由がある場合

                          HTTP/1.1 400 Bad Requests
                          ...
                          Content-Type: application/json
                          ...
                          
                          {
                              status: "error",
                              code: "VALIDATION_ERROR"
                              errors: [{
                                  field: "card_number"
                                  reason: "INVALID_CARD_NUMBER"
                              }]
                          }

                          例:JSONのエラー情報が返され、より詳細なエラーの理由がある場合

                          HTTP/1.1 400 Bad Requests
                          ...
                          Content-Type: application/json
                          ...
                          
                          {
                              status: "error",
                              code: "CHARGE_AMOUNT_TOO_LOW"
                              errors: [{
                                  reason: "Charge amount must exceed 100"
                              }]
                          }

                          APIリクエストエラーのエラーコード

                          JSON形式の詳細なエラー情報が提供される場合、エラーコードは以下のような内容を意味します。

                          HTTPステータスエラーコード内容
                          400ALREADY_CAPTURED対象の課金は既にキャプチャ済みか、オーソリが完了していません。
                          400AUTH_NOT_SUPPORTEDオーソリに対応したゲートウェイが設定されていません。
                          400CANCEL_NOT_ALLOWEDこの支払い方法はキャンセルに対応していません。もしくは対象の課金のステータスはキャンセルできない状態です。 詳細はキャンセルを参照してください。
                          400CANNOT_CHANGE_CANCELED_SUBSCRIPTIONキャンセルされた定期課金は変更することはできません。
                          400CANNOT_CHANGE_TOKENこの状態の定期課金のトランザクショントークンは変更できません。トランザクショントークンの変更可能な条件は定期課金の更新を参照してください。
                          400CANNOT_REFUND_UNSUCCESSFUL_CHARGEsuccessful 以外の状態の課金は返金できません。
                          400CAPTURE_AMOUNT_TOO_LARGEキャプチャの金額がオーソリ時の金額より大きいです。
                          400CARD_BRAND_NOT_SUPPORTED指定されたカードブランドに対応したゲートウェイが設定されていません。
                          400CARD_COUNTRY_NOT_SUPPORTED指定されたカード発行国に対応したゲートウェイが設定されていません。
                          400CARD_PROCESSING_DISABLED支払い方法でカードが無効になっています。
                          400CHARGE_TOO_QUICK制限つきのリカーリングトークンまたは同一カードに対して、30秒以内※に同一金額で複数の課金を作成しようとしました。
                          ※APIからリクエストを行っている加盟店さまは、本エラーの発生時間を変更できます。詳細は冪等なリクエストを参照してください。
                          400CONVENIENCE_PROCESSING_DISABLED支払い方法でコンビニ決済が無効になっています。
                          400CURRENCY_MUST_MATCH_CHARGE返金時の通貨は課金時の通貨と同じである必要があります。
                          400CVV_REQUIREDCVV の提供が必要です。
                          400CVV_AUTHORIZATION_NOT_COMPLETEDCVV(セキュリティーコード)認証に失敗しました。
                          400FILE_INVALID_TYPEアップロードされたファイルの MIME タイプが正しくありません。
                          400FILE_MAX_SIZE_EXCEEDEDアップロードされたファイルのサイズが大きすぎます。
                          400FORBIDDEN_IPリクエスト元のIPアドレスから割り出された国が、設定された許可する国に含まれていません。
                          400INSTALLMENT_MAX_PAYOUT_PERIOD_EXCEEDED分割払いの支払期間が、設定された最大の支払期間を超過しています。
                          400INSTALLMENT_PAYMENT_TYPE_NOT_ALLOWED_FOR_PLAN分割払いの支払い方法として許可されていない支払い方法です。
                          400INSTALLMENT_INVALID_CYCLES_COUNT利用できない分割回数です。
                          400INSTALLMENT_INVALID_PLANサポートされていない分割支払いプランです。
                          400INVALID_PLATFORMプラットフォームの指定が正しくありません。
                          400INVALID_TOKEN_TYPEトランザクショントークンの種類が正しくありません。
                          400INVALID_QR_SCAN_GATEWAYQRコード決済のゲートウェイが設定されていないか有効ではありません。
                          400LAST_NAME_REQUIREDカード名義にスペースで区切られた苗字が必要です。
                          400LIVE_MODE_NOT_ENABLED_WHEN_UNVERIFIED本番モード(live)を使用するにはアカウントの審査の完了が必要です。
                          400NO_DIRECT_CURRENCY_GATEWAY通貨の変換をせずに利用可能なゲートウェイが設定されていません。
                          400NO_GATEWAYS_AVAILABLE利用可能なゲートウェイが見つかりません。
                          400NO_TEST_CARD_IN_LIVE_MODE本番モード(live)でテストカードは使用できません。
                          400NON_SUBSCRIPTION_PAYMENT課金の作成にワンタイムトークンもしくはリカーリングトークンを指定してください。
                          400NOT_ONE_TIME_TOKENワンタムトークン以外はサポートされていません。
                          400NOT_SUBSCRIPTION_TOKEN定期課金トークンもしくはリカーリングトークンを指定してください。
                          400PARTIAL_CAPTURE_NOT_SUPPORTED部分的なキャプチャはサポートされていません。
                          400PAYMENT_EXPIRATION_EXCEEDS_PERIOD支払い期限日時がサイクルを超過しています。
                          400QR_PROCESSING_DISABLED支払い方法でQRコードが無効になっています。
                          400RECURRING_TOKEN_DISABLEDトランザクショントークンが無効になっているか、アカウントにリカーリングトークンを使用する権限がありません。
                          400RECURRING_USAGE_LIMIT_REQUIREDusage_limit パラメータが必要です。
                          400RECURRING_USAGE_REQUIRES_CVVCVV の提供が必要です。
                          400REFUND_EXCEEDS_CHARGE_AMOUNT返金金額が課金金額を超過しています。

                          ※複数の一部返金の合計金額が課金金額を超えた場合
                          ※全額返金成功の課金に再度返金処理をした場合
                          400REFUND_NOT_ALLOWED返金に対応していない支払い方法、もしくは返金が許可されませんでした。
                          400REFUND_EXCEEDS_SALES返金の金額が上限を越えたため返金できません。
                          400REFUND_NOT_WITHIN_BOUNDS返金金額が課金金額を超過しています。

                          ※複数の一部返金の合計金額が課金金額を超えていて、かつ一部返金の1回分の返金金額が課金金額を超えた場合
                          400RESOURCE_LIMIT_REACHEDリソース制限の上限に達しました。
                          400SUBSCRIPTION_ALREADY_ENDED定期課金は既に終了しています。
                          400TOKEN_FOR_WRONG_STOREトランザクショントークンのストアが定期課金のストアと異なります。
                          400TRANSACTION_ALREADY_PROCESSED使用済みのトランザクショントークンは指定できません。
                          400TRANSACTION_TOKEN_EXPIREDトランザクショントークンの有効期限が切れました。
                          400USAGE_LIMIT_NOT_APPLICABLEusage_limit は指定できません。
                          400VALIDATION_ERRORリクエスト内容のパラメータにバリデーションエラーがあります。詳細は errors を参照してください。
                          400CHARGE_AMOUNT_TOO_HIGH課金金額が課金最大額より超過しています。
                          401AUTH_HEADER_MISSINGAuthorization ヘッダが指定されていません。
                          401EXPIRED_LOGIN_TOKENログイントークンの有効期限が切れました。
                          401INVALID_APP_TOKENアプリケーショントークンの指定が正しくありません。
                          401INVALID_CREDENTIALS認証情報が正しくありません。
                          401INVALID_DOMAINリクエストされた Origin ヘッダのドメインは、指定されたアプリケーショントークンのドメインに登録されていません。
                          401INVALID_LOGIN_TOKENログイントークンが無効です。
                          401DIRECT_CARD_TOKEN_CREATION_DISABLEDPCIDSSに準拠していないためカード情報を送信できません。
                          403CARD_LOCKEDこのカードは一定期間内の失敗回数がしきい値を超えた為、一時的にロックされています。
                          30分以内に5回以上失敗で、2時間制限をかけます。
                          403INVALID_PERMISSIONSアプリケーショントークンの種類が正しくないか、アカウントの権限が不足しています。
                          403INSTALLMENT_PROCESSOR_INITIAL_AMOUNTS_NOT_SUPPORTEDこのゲートウェイでは初回金額の指定はサポートされていません。
                          403OUTDATED_APP_TOKENアプリケーショントークンのバージョンが古いです。新しくアプリケーショントークンを作成しなおしてください。
                          403TEST_CARD_CANNOT_BE_BANNEDテストカードは禁止できません。
                          409IDEMPOTENCY_KEY_CONFLICT冪等性が保証されたリクエストの際に、指定された冪等性キーが以前に異なるAPIやメソッドで使用されています。
                          409NON_UNIQUE_ACTIVE_TOKENアクティブなトランザクショントークンが既に存在します。
                          409WEBHOOK_URL_EXISTS指定されたURLは既に登録されています。
                          500COULD_NOT_REFRESH_AUTHログイントークンの更新に失敗しました。サポートへお問い合わせください。
                          500DB_ERROR内部データベースエラー。サポートへお問い合わせください。
                          500FILE_UPLOAD_ERRORファイルのアップロードに失敗しました、サポートへお問い合わせください。
                          500IMPROPER_AUTHオーソリの状態が正しくありません。サポートへお問い合わせください。
                          500TIMEOUT内部処理でタイムアウトが発生しました。サポートへお問い合わせください。
                          500UNABLE_TO_GET_IDEMPOTENT_RESULT冪等性キーに該当するキャッシュは見つかった為、リクエストされた内容は処理しませんでしたが、以前の処理結果のキャッシュの取得に失敗しました。
                          500UNKNOWN_ERROR予期しないエラーです。サポートへお問い合わせください。
                          503SERVICE_UNAVAILABLE_TRY_AGAINサービスが一時的に利用できません。時間を置いて再試行してください。
                          504NO_GATEWAY_AVAILABLE_TO_PROCESS_THE_REQUESTこのリクエストは接続先システムで対応していせん。サポートへお問い合わせください。

                          ペイメントエラー

                          課金(Charge)返金(Refund)などのリソースは、リソースの作成、つまりリクエストの受付に成功した場合でも、実際にゲートウェイでの処理に失敗した場合等にエラーが発生する場合があります。この場合、課金や返金の状態は failed になり、error フィールドに以下のデータが設定されます。

                          • code (number) – 課金が失敗またはエラーになった理由を表すエラーコード
                          • message (string) – 課金が失敗した理由
                          • detail (string) – 課金が失敗した詳細理由

                          エラーコードは、以下の通りです。

                          コード内容
                          301カード番号のエラーです。
                          302不正な有効期限(月)です。
                          303不正な有効期限(年)です。
                          304有効期限切れです。
                          305セキュリティーコードに関するエラーです。
                          306カードが拒否されました(認証審査エラー)
                          失敗理由についてはカード発行会社へお問い合わせください。
                          307不正なカードです。
                          308このカードはカード会社から承認が下りていません。詳細は消費者よりカード会社へお問い合わせください。
                          309一般エラーが発生しました。詳細情報は管理画面で確認できます。
                          310消費者データが不正です(無効なリクエストデータ)。
                          加盟店のリクエストに誤りがある可能性があります。
                          311短期間に同一カードでの課金が多すぎます。しばらく待ってから再試行してください。
                          312この課金はキャンセルできません。
                          313オーソリの期限が切れました(課金のキャプチャ時)。
                          314このカードは盗難されたものとして報告されたか、発行会社によって無効化されました。加盟店は利用者のこのカードを差し押さえてください。
                          315カード発行会社へお問い合わせください。
                          316名義人の姓は必須です。
                          317部分的なキャプチャはサポートされていません。
                          318部分的な返金はサポートされていません。
                          319不正行為の疑いがあります(セキュリティ制限)。
                          320銀行側のシステムでエラーが発生しました。
                          321ダイナミックディスクリプタはサポートされていません。
                          322バーコード/QRコードが無効です。
                          323バーコード/QRコードの有効期限が切れています。
                          324このバーコード/QRコードは既に処理済みです。
                          325このバーコード/QRコードは現在処理中です。
                          326リスクプロファイルが高いため拒否されました。
                          327決済期限(タイムアウトは5分)が切れています。
                          328復帰に失敗しました。手動による介入が必要です。
                          329返金に失敗しました。
                          330残高が不足しています。
                          331メタデータフィールドの値が無効または不足しています。
                          332国境を越えた取引は許可されていません:身分証明書がありません。
                          333国境を越えた取引は許可されていません:電話番号がありません。
                          334国境を越えた取引は許可されていません:承認されていない支払方法です。
                          335国境を越えた取引は許可されていません:名前がありません。
                          336この支払方法の決済制限を超えました。
                          337この加盟店の決済制限を超えました。
                          338決済情報が見つかりません。
                          339決済情報が重複しています。
                          340この消費者のリテールQRアカウントはゲートウェイによって拒否されました。
                          341この加盟店には、このゲートウェイに必要な情報が不足しています。
                          342国境を越えた取引は許可されていません: 承認されていない通貨です。
                          343ゲートウェイでサーバーエラー(接続先システムエラー)が発生したため、支払いを処理できませんでした。しばらく待ってから再試行してください。
                          344選択した支払方法は、ゲートウェイにより一時的に利用できません。
                          345支払いは既にキャンセルされています。
                          346システムが遅延したため、支払い処理に時間がかかりキャンセルされました。しばらく待ってから再試行してください。
                          355指定された支払い区分(分割回数など)が非対応のカードです。
                          コード内容
                          500リクエストを実行したところ、前処理エラーが発生しました。正しい入力が行われたことを確認し、詳細はエラーメッセージを参照してください。
                          501内部エラーが発生しました。サポート担当者にご連絡ください。
                          502リクエストに対してレスポンスがタイムアウトとなりました。お時間おいて再度お手続きお願い致します。

                          税関申告エラー

                          税関申告リソースは、失敗するとエラー情報を返すことがあります。税関申告エラーには、以下の情報が含まれます。

                          • code (number) – エラーコードを照合するために使用できる一意のキー
                          • message (string) – エラーの簡単な説明
                          • detail (string) – より詳細なエラーメッセジがった場合の詳細

                          コードの定義は以下の表のとおりです。

                          コード内容
                          601本サービスでシステムリリースされたエラーが発生しましたが、具体的な情報はdetailをご覧ください。
                          602ペイメントプロセッサーが送信されたリクエストを拒否しました。具体的な情報はdetailをご覧ください。
                          603提出されたお客様の身元確認は、税関当局によって拒否されました。
                          604必要なお客様のID情報が加盟店から提出されていなかった。

                          158. トランザクション - LIST

                          トランザクションオブジェクトに対するLISTリクエストには以下が必要です。(括弧内は入力箇所)

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

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId}/transaction_history \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --header 'Content-type: application/json'
                          すべての店舗を表示する
                          curl --request GET \
                          --url https://api.univapay.com/transaction_history \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --header 'Content-type: application/json'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。
                          全てがand条件で検索され、リストが作成されます。

                          フィールドデータ型備考
                          fromstring (ISO-8601)指定された日時以降でフィルタリングする
                          例:2024年1月23日の場合
                          2024-01-23T00:00:00Z
                          tostring (ISO-8601)指定された日時以前でフィルタリングする
                          例:2024年1月23日の場合
                          2024-01-23T00:00:00Z
                          searchstring課金ID, 返金ID, メタデータの情報、カード名義人名、カード名義人メールアドレス、カード番号下4桁のいずれかでフィルタリングする
                          typestringcharge,refundのいずれか
                          statusstring状態でフィルタリングする
                          課金もしくは返金の状態のいずれか
                          modestring実行モードでフィルタリングする
                          liveまたはtest

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/transaction_history?from=2024-06-01T00:00:00Z&to=2024-06-25T00:00:00Z \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          すべての店舗を表示する
                          curl --request GET \
                          --url https://api.univapay.com/transaction_history?from=2024-06-01T00:00:00Z&to=2024-06-25T00:00:00Z \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "items": [
                                  {
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "resource_id": "11ef327b-f037-10ce-b891-9b43076af963",
                                      "charge_id": null,
                                      "amount": 100,
                                      "currency": "JPY",
                                      "amount_formatted": 100,
                                      "type": "charge",
                                      "status": "successful",
                                      "metadata": {},
                                      "created_on": "2024-06-24T22:48:56.42805Z",
                                      "mode": "test",
                                      "merchant_name": "管理画面ガイド",
                                      "store_name": "管理画面ガイド_TEST店舗",
                                      "payment_type": "card",
                                      "user_data": {
                                          "type": "charge",
                                          "cardholder_name": "taro yamada",
                                          "cardholder_email_address": "test@test.com",
                                          "brand": "visa",
                                          "gateway": "test",
                                          "service_provider": "test",
                                          "refunds": []
                                      },
                                      "bank_transfer_payment_status": null,
                                      "bank_transfer_latest_deposit_date": null
                                  },
                                  {
                                      "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "resource_id": "11ef327b-efeb-2efc-adc5-ff26c8964860",
                                      "charge_id": null,
                                      "amount": 100,
                                      "currency": "JPY",
                                      "amount_formatted": 100,
                                      "type": "charge",
                                      "status": "successful",
                                      "metadata": {},
                                      "created_on": "2024-06-24T22:48:55.930755Z",
                                      "mode": "test",
                                      "merchant_name": "管理画面ガイド",
                                      "store_name": "管理画面ガイド_TEST店舗",
                                      "payment_type": "card",
                                      "user_data": {
                                          "type": "charge",
                                          "cardholder_name": "hanako yamada",
                                          "cardholder_email_address": "demo@demo.com",
                                          "brand": "master",
                                          "gateway": "test",
                                          "service_provider": "test",
                                          "refunds": []
                                      },
                                      "bank_transfer_payment_status": null,
                                      "bank_transfer_latest_deposit_date": null
                                  },
                          
                          <中略>
                          
                              ],
                              "has_more": true,
                              "total_hits": 99
                          }

                          159. 加盟店 - GET

                          加盟店オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

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

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/me \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          記述例

                          curl --request GET \
                          --url http://api.univapay.com/me \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11edf541-548f-ad70-8bc2-d34ca468c664",
                              "verification_data_id": "11edf541-54f3-2a58-9afe-b372c6f5fc0a",
                              "name": "管理画面ガイド",
                              "email": "merchant@test.com",
                              "notification_email": "merchant@test.com",
                              "verified": true,
                              "created_on": "2023-05-18T06:00:45.870218Z",
                              "configuration": {
                                  "percent_fee": 3.400,
                                  "flat_fees": [
                                      {
                                          "amount": 30,
                                          "amount_formatted": 30,
                                          "currency": "JPY"
                                      }
                                  ],
                                  "logo_url": null,
                                  "country": null,
                                  "language": null,
                                  "display_time_zone": null,
                                  "min_transfer_payout": null,
                                  "minimum_charge_amounts": null,
                                  "maximum_charge_amounts": null,
                                  "transfer_schedule": {
                                      "wait_period": "P7D",
                                      "period": "monthly",
                                      "full_period_required": null,
                                      "day_of_week": null,
                                      "week_of_month": null,
                                      "day_of_month": null,
                                      "weekly_closing_day": null,
                                      "weekly_payout_day": null
                                  },
                                  "user_transactions_configuration": {
                                      "enabled": true,
                                      "notify_customer": true,
                                      "notify_on_test": true,
                                      "notify_on_recurring_token_creation": true,
                                      "notify_on_recurring_token_cvv_failed": true,
                                      "notify_on_webhook_failure": true,
                                      "notify_on_webhook_disabled": true,
                                      "notify_user_on_failed_transactions": true,
                                      "notify_customer_on_failed_transactions": true,
                                      "notify_user_on_convenience_instructions": null,
                                      "notify_on_subscriptions": true,
                                      "notify_on_authorizations": true,
                                      "notify_on_cvv_authorizations": false,
                                      "notify_on_cancels": true,
                                      "customer_refer_link_enabled": true,
                                      "notify_on_convenience_expiry": true
                                  },
                                  "recurring_token_configuration": {
                                      "recurring_type": "infinite",
                                      "charge_wait_period": "PT20S",
                                      "card_charge_cvv_confirmation": {
                                          "enabled": true,
                                          "threshold": [
                                              {
                                                  "amount": 10000,
                                                  "amount_formatted": 10000,
                                                  "currency": "JPY"
                                              }
                                          ]
                                      }
                                  },
                                  "security_configuration": {
                                      "card_charge_cooldown": null,
                                      "subscription_cooldown": null,
                                      "idempotent_card_charge_cooldown": null,
                                      "idempotent_subscription_cooldown": null,
                                      "restrict_ip_after_failed_charge": {
                                          "enabled": true,
                                          "count": null,
                                          "cooldown": null
                                      },
                                      "inspect_suspicious_login_after": "P20D",
                                      "refund_percent_limit": null,
                                      "limit_charge_by_card_configuration": null,
                                      "confirmation_required": null,
                                      "min_refund_threshold": 5,
                                      "limit_refund_by_sales": {
                                          "enabled": true,
                                          "period": "daily",
                                          "rolling_window": false
                                      }
                                  },
                                  "checkout_configuration": {
                                      "ec_email": {
                                          "enabled": true
                                      },
                                      "ec_products": {
                                          "enabled": true
                                      }
                                  },
                                  "installments_configuration": {
                                      "enabled": null,
                                      "card_processor": {
                                          "revolving": null,
                                          "fixed_cycle": null
                                      },
                                      "supported_payment_types": null,
                                      "min_charge_amount": null,
                                      "max_payout_period": null,
                                      "only_with_processor": true
                                  },
                                  "subscription_plan_configuration": {
                                      "enabled": null,
                                      "fixed_cycle": null,
                                      "fixed_cycle_amount": null,
                                      "supported_payment_types": null,
                                      "min_charge_amount": null,
                                      "max_payout_period": null
                                  },
                                  "card_brand_percent_fees": {
                                      "visa": 3.300,
                                      "american_express": 3.500,
                                      "mastercard": 3.300,
                                      "maestro": null,
                                      "discover": null,
                                      "jcb": 3.500,
                                      "diners_club": 3.300,
                                      "union_pay": null,
                                      "private_label": null
                                  },
                                  "subscription_configuration": {
                                      "enabled": null,
                                      "failed_charges_to_cancel": null,
                                      "suspend_on_cancel": null,
                                      "allow_merchant_amount_patch": true,
                                      "allow_merchant_due_date_patch": true
                                  },
                                  "customer_management_configuration": {
                                      "enabled": true,
                                      "default_roles": null,
                                      "default_mode": null
                                  },
                                  "descriptor_provided_configuration": null,
                                  "card_configuration": {
                                      "enabled": null,
                                      "debit_enabled": true,
                                      "prepaid_enabled": true,
                                      "debit_authorization_enabled": null,
                                      "prepaid_authorization_enabled": null,
                                      "forbidden_card_brands": null,
                                      "allowed_countries_by_ip": null,
                                      "foreign_cards_allowed": true,
                                      "fail_on_new_email": null,
                                      "card_limit": null,
                                      "allow_empty_cvv": false,
                                      "only_direct_currency": false,
                                      "three_ds_required": null,
                                      "three_ds_address_required": null,
                                      "allow_direct_token_creation": true
                                  },
                                  "qr_scan_configuration": {
                                      "enabled": true,
                                      "forbidden_qr_scan_gateways": null
                                  },
                                  "convenience_configuration": {
                                      "enabled": true,
                                      "expiration_time_shift": {
                                          "value": "13:00:00+09:00",
                                          "enabled": false
                                      }
                                  },
                                  "paidy_configuration": {
                                      "enabled": null
                                  },
                                  "qr_merchant_configuration": {
                                      "enabled": true
                                  },
                                  "online_configuration": {
                                      "enabled": false
                                  },
                                  "bank_transfer_configuration": {
                                      "enabled": true,
                                      "expiration_time_shift": {
                                          "value": "11:00:00+09:00",
                                          "enabled": true
                                      },
                                      "default_extension_period": "PT24H",
                                      "charge_request_notification_enabled": true,
                                      "charge_request_canceled_notification_enabled": true,
                                      "charge_expired_notification_enabled": true,
                                      "deposit_received_notification_enabled": true,
                                      "deposit_insufficient_notification_enabled": true,
                                      "deposit_exceeded_notification_enabled": true,
                                      "extension_notification_enabled": true,
                                      "remind_notification_enabled": true
                                  },
                                  "platform_credentials_enabled": false,
                                  "tagged_platform_credentials_enabled": false
                              },
                              "tms_merchant_data": null
                          }

                          160. 店舗 - GET

                          店舗オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)

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

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores/{storeId} \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0 \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "name": "管理画面ガイド_TEST店舗",
                              "created_on": "2023-05-18T06:03:53.125782Z",
                              "configuration": {
                                  "percent_fee": null,
                                  "flat_fees": null,
                                  "logo_url": null,
                                  "country": null,
                                  "language": null,
                                  "display_time_zone": null,
                                  "min_transfer_payout": null,
                                  "minimum_charge_amounts": null,
                                  "maximum_charge_amounts": null,
                                  "user_transactions_configuration": {
                                      "enabled": null,
                                      "notify_customer": null,
                                      "notify_on_test": null,
                                      "notify_on_recurring_token_creation": null,
                                      "notify_on_recurring_token_cvv_failed": null,
                                      "notify_on_webhook_failure": null,
                                      "notify_on_webhook_disabled": null,
                                      "notify_user_on_failed_transactions": null,
                                      "notify_customer_on_failed_transactions": null,
                                      "notify_user_on_convenience_instructions": null,
                                      "notify_on_subscriptions": null,
                                      "notify_on_authorizations": null,
                                      "notify_on_cvv_authorizations": null,
                                      "notify_on_cancels": null,
                                      "customer_refer_link_enabled": null,
                                      "notify_on_convenience_expiry": null
                                  },
                                  "recurring_token_configuration": {
                                      "recurring_type": null,
                                      "charge_wait_period": null,
                                      "card_charge_cvv_confirmation": {
                                          "enabled": null,
                                          "threshold": null
                                      }
                                  },
                                  "security_configuration": {
                                      "card_charge_cooldown": null,
                                      "subscription_cooldown": null,
                                      "idempotent_card_charge_cooldown": null,
                                      "idempotent_subscription_cooldown": null,
                                      "restrict_ip_after_failed_charge": {
                                          "enabled": null,
                                          "count": null,
                                          "cooldown": null
                                      },
                                      "inspect_suspicious_login_after": null,
                                      "refund_percent_limit": null,
                                      "limit_charge_by_card_configuration": null,
                                      "confirmation_required": null,
                                      "min_refund_threshold": null,
                                      "limit_refund_by_sales": null
                                  },
                                  "checkout_configuration": {
                                      "ec_email": {},
                                      "ec_products": {}
                                  },
                                  "installments_configuration": {
                                      "enabled": null,
                                      "card_processor": {
                                          "revolving": null,
                                          "fixed_cycle": null
                                      },
                                      "supported_payment_types": null,
                                      "min_charge_amount": null,
                                      "max_payout_period": null,
                                      "only_with_processor": true
                                  },
                                  "subscription_plan_configuration": {
                                      "enabled": null,
                                      "fixed_cycle": null,
                                      "fixed_cycle_amount": null,
                                      "supported_payment_types": null,
                                      "min_charge_amount": null,
                                      "max_payout_period": null
                                  },
                                  "card_brand_percent_fees": {
                                      "visa": null,
                                      "american_express": null,
                                      "mastercard": null,
                                      "maestro": null,
                                      "discover": null,
                                      "jcb": null,
                                      "diners_club": null,
                                      "union_pay": null,
                                      "private_label": null
                                  },
                                  "subscription_configuration": {
                                      "enabled": null,
                                      "failed_charges_to_cancel": null,
                                      "suspend_on_cancel": null,
                                      "allow_merchant_amount_patch": null,
                                      "allow_merchant_due_date_patch": null
                                  },
                                  "customer_management_configuration": {
                                      "enabled": null,
                                      "default_roles": null,
                                      "default_mode": null
                                  },
                                  "descriptor_provided_configuration": null,
                                  "card_configuration": {
                                      "enabled": null,
                                      "debit_enabled": null,
                                      "prepaid_enabled": null,
                                      "debit_authorization_enabled": null,
                                      "prepaid_authorization_enabled": null,
                                      "forbidden_card_brands": null,
                                      "allowed_countries_by_ip": null,
                                      "foreign_cards_allowed": null,
                                      "fail_on_new_email": null,
                                      "card_limit": null,
                                      "allow_empty_cvv": false,
                                      "only_direct_currency": null,
                                      "three_ds_required": null,
                                      "three_ds_address_required": null,
                                      "allow_direct_token_creation": null
                                  },
                                  "qr_scan_configuration": {
                                      "enabled": null,
                                      "forbidden_qr_scan_gateways": null
                                  },
                                  "convenience_configuration": {
                                      "expiration_time_shift": {}
                                  },
                                  "paidy_configuration": {
                                      "enabled": null
                                  },
                                  "qr_merchant_configuration": {
                                      "enabled": null
                                  },
                                  "online_configuration": {},
                                  "bank_transfer_configuration": {
                                      "expiration_time_shift": {}
                                  },
                                  "platform_credentials_enabled": null,
                                  "tagged_platform_credentials_enabled": null
                              },
                              "tms_store_data": null
                          }

                          161. 店舗 - LIST

                          店舗オブジェクトに対するLISTリクエストには以下が必要です。(括弧内は入力箇所)
                          パラメータでsearchを用い、店舗IDを指定することで特定の店舗をフィルタリングして表示することも可能です。

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

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/stores \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。

                          フィールドデータ型備考
                          searchstring店舗名でフィルタリングする

                          記述例

                          curl --request GET \
                          --url http://api.univapay.com/stores \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "items": [
                                  {
                                      "id": "11eec3c2-c117-9386-809b-3fb44d6462d4",
                                      "name": "管理画面ガイド_TEST店舗Ⅳ",
                                      "created_on": "2024-02-05T01:06:12.557138Z",
                                      "merchant_name": "管理画面ガイド"
                                  },
                                  {
                                      "id": "11ee6d59-0aa7-3562-bbe0-af183c595b00",
                                      "name": "管理画面ガイド_TEST店舗Ⅲ",
                                      "created_on": "2023-10-18T01:52:49.32173Z",
                                      "merchant_name": "管理画面ガイド"
                                  },
                                  {
                                      "id": "11ee4bb9-8282-c9aa-8ac7-3f876b49d88b",
                                      "name": "管理画面ガイド_TEST店舗Ⅱ",
                                      "created_on": "2023-09-05T06:57:42.566226Z",
                                      "merchant_name": "管理画面ガイド"
                                  },
                                  {
                                      "id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                                      "name": "管理画面ガイド_TEST店舗",
                                      "created_on": "2023-05-18T06:03:53.125782Z",
                                      "merchant_name": "管理画面ガイド"
                                  }
                              ],
                              "has_more": false
                          }

                          162. カスタマーUUID

                          カスタマーUUIDオブジェクト

                          フィールドデータ型備考
                          customer_idstring当システムが生成した顧客を識別するUUID

                          店舗オブジェクトに対するカスタマーUUIDリクエストには以下が必要です。(括弧内は入力箇所)
                          加盟店が顧客を識別するIDを利用している際、当システム側で顧客を識別するUUIDを生成することができます。

                          • 店舗ID(URLの{id}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)
                          curl --request POST \
                          --url https://api.univapay.com/stores/{id}/create_customer_id \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          利用できるパラメータ

                          リクエストURLに追加できるクエリパラメータは以下です。

                          フィールドデータ型備考
                          customer_idstring加盟店システムで発番する顧客を識別するID

                          記述例

                          curl --request POST \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/create_customer_id \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --data "{"customer_id": "1234abcd"}"

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "customer_id": "03ad9882-a1ca-4064-a905-3682477bec10"
                          }

                          163. 決済設定 - GET

                          決済設定オブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)
                          このリクエストはウィジェットを開いた際に自動的に送られ、店舗の支払いのための設定を確認することができます。
                          リンクフォーム / ウィジェットを開かなくても、アプリトークン / シークレット を指定して下記リクエストを送ることで確認可能です。

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

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/checkout_info \
                          --header 'Authorization: Bearer {jwt}'

                          記述例

                          curl --request GET \
                          --url https://api.univapay.com/checkout_info \
                          --header 'Authorization: Bearer {jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "mode": "test",
                              "recurring_token_privilege": "infinite",
                              "name": "管理画面ガイド_TEST店舗",
                              "card_configuration": {
                                  "enabled": true,
                                  "debit_enabled": true,
                                  "prepaid_enabled": true,
                                  "debit_authorization_enabled": true,
                                  "prepaid_authorization_enabled": true,
                                  "only_direct_currency": false,
                                  "forbidden_card_brands": null,
                                  "allowed_countries_by_ip": null,
                                  "foreign_cards_allowed": true,
                                  "fail_on_new_email": null,
                                  "card_limit": null,
                                  "allow_empty_cvv": false,
                                  "allow_direct_token_creation": true,
                                  "three_ds_required": false,
                                  "three_ds_address_required": true
                              },
                              "subscription_configuration": {
                                  "enabled": true
                              },
                              "installments_configuration": {
                                  "enabled": true,
                                  "card_processor": {
                                      "revolving": true,
                                      "fixed_cycle": true
                                  },
                                  "supported_payment_types": [
                                      "card",
                                      "konbini",
                                      "apple_pay",
                                      "paidy",
                                      "bank_transfer"
                                  ],
                                  "min_charge_amount": null,
                                  "max_payout_period": "P100Y",
                                  "only_with_processor": true
                              },
                              "subscription_plan_configuration": {
                                  "enabled": true,
                                  "fixed_cycle": true,
                                  "fixed_cycle_amount": true,
                                  "supported_payment_types": [
                                      "card",
                                      "konbini",
                                      "apple_pay",
                                      "paidy",
                                      "bank_transfer"
                                  ],
                                  "min_charge_amount": null,
                                  "max_payout_period": "P100Y"
                              },
                              "checkout_configuration": {
                                  "ec_email": {
                                      "enabled": true
                                  },
                                  "ec_products": {
                                      "enabled": true
                                  }
                              },
                              "qr_scan_configuration": {
                                  "enabled": true,
                                  "forbidden_qr_scan_gateways": null
                              },
                              "convenience_configuration": {
                                  "enabled": true,
                                  "expiration": "PT720H",
                                  "expiration_time_shift": {
                                      "value": "13:00:00+09:00",
                                      "enabled": false
                                  }
                              },
                              "paidy_configuration": {
                                  "enabled": true
                              },
                              "paidy_public_key": "pk_test_9bta9fm2cbvpcscddhr7qrnkkb",
                              "logo_image": null,
                              "theme": {
                                  "colors": {
                                      "main_background": "#FFFFFF",
                                      "secondary_background": "#F5F8FC",
                                      "main_color": "#4C5F85",
                                      "main_text": "#FFFFFF",
                                      "primary_text": "#4C5F85",
                                      "secondary_text": "#4C5F85",
                                      "base_text": "#4C5F85"
                                  }
                              },
                              "recurring_card_charge_cvv_confirmation": {
                                  "enabled": true,
                                  "threshold": [
                                      {
                                          "amount": 10000,
                                          "amount_formatted": 10000,
                                          "currency": "JPY"
                                      }
                                  ]
                              },
                              "online_configuration": {
                                  "enabled": false
                              },
                              "bank_transfer_configuration": {
                                  "enabled": true,
                                  "match_amount": "disabled",
                                  "expiration": "PT168H",
                                  "expiration_time_shift": {
                                      "value": "11:00:00+09:00",
                                      "enabled": true
                                  },
                                  "virtual_bank_accounts_threshold": 5,
                                  "virtual_bank_accounts_fetch_count": 10,
                                  "default_extension_period": "PT24H",
                                  "maximum_extension_period": "PT720H",
                                  "automatic_extension_enabled": false,
                                  "charge_request_notification_enabled": true,
                                  "charge_request_canceled_notification_enabled": true,
                                  "charge_expired_notification_enabled": true,
                                  "deposit_received_notification_enabled": true,
                                  "deposit_insufficient_notification_enabled": true,
                                  "deposit_exceeded_notification_enabled": true,
                                  "extension_notification_enabled": true,
                                  "remind_notification_period": "PT72H",
                                  "remind_notification_enabled": true
                              },
                              "supported_brands": [
                                  {
                                      "payment_type": "konbini",
                                      "brand": "sunkus",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "online",
                                      "brand": "alipay_plus_online",
                                      "online_brand": "alipay_plus_online",
                                      "dynamic_info": true,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "yamazaki_daily_store",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "family_mart",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "mini_stop",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "pay_easy",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "online",
                                      "brand": "alipay_online",
                                      "online_brand": "alipay_online",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "circle_k",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "card",
                                      "brand": "mastercard",
                                      "card_brand": "mastercard",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": true,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": true,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "seven_eleven",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "seico_mart",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "online",
                                      "brand": "d_barai_online",
                                      "online_brand": "d_barai_online",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "daily_yamazaki",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "konbini",
                                      "brand": "lawson",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "card",
                                      "brand": "jcb",
                                      "card_brand": "jcb",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": true,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": true,
                                      "installment_capable": true
                                  },
                                  {
                                      "payment_type": "card",
                                      "brand": "visa",
                                      "card_brand": "visa",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": true,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": true,
                                      "installment_capable": true
                                  },
                                  {
                                      "payment_type": "paidy",
                                      "brand": "paidy",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "card",
                                      "brand": "diners_club",
                                      "card_brand": "diners_club",
                                      "dynamic_info": false,
                                      "support_auth_capture": false,
                                      "requires_full_name": false,
                                      "requires_cvv": true,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": true,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "card",
                                      "brand": "american_express",
                                      "card_brand": "american_express",
                                      "dynamic_info": false,
                                      "support_auth_capture": false,
                                      "requires_full_name": false,
                                      "requires_cvv": true,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": true,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "online",
                                      "brand": "pay_pay_online",
                                      "online_brand": "pay_pay_online",
                                      "dynamic_info": false,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "bank_transfer",
                                      "brand": "aozora_bank",
                                      "dynamic_info": false,
                                      "support_auth_capture": false,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  },
                                  {
                                      "payment_type": "online",
                                      "brand": "we_chat_online",
                                      "online_brand": "we_chat_online",
                                      "dynamic_info": true,
                                      "support_auth_capture": true,
                                      "requires_full_name": false,
                                      "requires_cvv": false,
                                      "countries_allowed": null,
                                      "supported_currencies": [
                                          "JPY"
                                      ],
                                      "cvv_auth": false,
                                      "installment_capable": false
                                  }
                              ]
                          }

                          164. ウェブフック - GET

                          ウェブフックオブジェクトに対するGETリクエストには以下が必要です。(括弧内は入力箇所)
                          ウェブフックIDを指定しない場合、クエリパラメータでフィルタリングすることで条件に当てはまるウェブフックの一覧を取得します。
                          店舗を指定したウェブフック情報を取得する場合 merchants/{merchantId} は省略可能です。

                          • 加盟店ID(URLの{merchantId}部分)
                          • 店舗ID(URLの{storeId}部分)
                          • ウェブフックID(URLの{webhookId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request GET \
                          --url https://api.univapay.com/merchants/{merchantId}/stores/{storeId}/webhooks/{webhookId} \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          記述例(merchantIdの指定を省略)

                          curl --request GET \
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/webhooks/11ef1809-ad25-f160-9093-4f3cee241eb0 \
                          --header 'Authorization: Bearer {secret}.{jwt}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef1809-ad25-f160-9093-4f3cee241eb0",
                              "platform_id": "11e7a7eb-0ef8-b0c6-bd54-f7a2646e6c47",
                              "merchant_id": "11edf541-548f-ad70-8bc2-d34ca468c664",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "triggers": [
                                  "charge_finished",
                                  "refund_finished"
                              ],
                              "url": "https://webhook.URL/",
                              "active": true,
                              "created_on": "2024-05-22T07:05:31.049021Z",
                              "updated_on": "2024-05-22T08:15:49.488255Z"
                          }

                          165. ウェブフック - UPDATE

                          ウェブフックオブジェクトに対するUPDATEリクエストには以下が必要です。(括弧内は入力箇所)
                          通知失敗などによって停止したウェブフックを再開処理する場合はこのリクエストをご利用ください。
                          店舗を指定したウェブフック情報を取得する場合 merchants/{merchantId} は省略可能です。

                          • 加盟店ID(URLの{merchantId}部分)
                          • 店舗ID(URLの{storeId}部分)
                          • ウェブフックID(URLの{webhookId}部分)
                          • シークレット(Headerの{secret}部分)
                          • アプリトークン(Headerの{jwt}部分)

                          リクエスト

                          CommandとHeader

                          curl --request PATCH \
                          --url https://api.univapay.com/merchants/{merchantId}/stores/{storeId}/webhooks/{wenbhookId} \
                          --header 'Authorization: Bearer {secret}.{jwt}'
                          --header 'Content-type: application/json'

                          利用できるパラメータ

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

                          フィールドデータ型備考
                          activebooleanウェブフックのステータス
                          trueもしくはfalse
                          urlstringウェブフック通知先のURL
                          triggersstringイベントのトリガー
                          詳細はこちら
                          auth_tokenstringAuthorizationヘッダー

                          Bodyの記述例

                          curl --request PATCH \ 
                          --url https://api.univapay.com/stores/11edf541-c42d-653c-8c3d-dfe0a55f95c0/webhooks/11ef1809-ad25-f160-9093-4f3cee241eb0 \ 
                          --header 'Authorization: Bearer {secret}.{jwt}' \ 
                          --header 'content-type: application/json' \ 
                          --data '{"active": "false"}'

                          レスポンス

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

                          CodeとHeader

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

                          Body

                          {
                              "id": "11ef1809-ad25-f160-9093-4f3cee241eb0",
                              "platform_id": "11e7a7eb-0ef8-b0c6-bd54-f7a2646e6c47",
                              "merchant_id": "11edf541-548f-ad70-8bc2-d34ca468c664",
                              "store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
                              "triggers": [
                                  "charge_finished",
                                  "refund_finished"
                              ],
                              "url": "https://webhook.URL/",
                              "active": false,
                              "created_on": "2024-05-22T07:05:31.049021Z",
                              "updated_on": "2024-06-25T09:41:56.235574Z"
                          }