個別アプリ専用支払方法登録APIについて

November 2023 編集されました カテゴリ: POS

11/21のAPIの更新で、

個別アプリ専用支払方法登録API

が追加されましたが、現状の仕様では、取得と、作成のみで、更新・削除はありません。

挙動を確認したところ

  • 作成済みの状態で再度作成すると「同一クライアントIDに紐づく個別アプリ専用支払方法の登録件数の上限をオーバーしたため、登録できません。」と403エラーになる

ことを確認しました。

現状、アプリの利用者通知で「アプリ利用開始時」を受信し、ユーザーの初期データを作成する際に、

個別アプリ専用支払方法登録APIを利用して、個別アプリ専用支払方法を設定する仕組みを検討しているのですが、

利用者がアプリの使用をやめた場合(評価期間が終了した場合も含む)、

一度、登録済みの「個別アプリ専用支払方法」はどのように扱われるのでしょうか?


可能性として

・評価期間試してみて、実際に契約

・いったんアプリを解除し、再度契約

のような場合、利用者通知のタイミングで、個別アプリ専用支払方法登録API再度実施してしまうと、エラーになってしまう可能性があるのかどうか知りたいです(作成前に取得APIをコールし、作成済みであれば、生成をスキップするような処理を実装する必要があるのかどうかを判断したいと考えております)。

ベストアンサー

  • @ashizaki

    改めて社内で確認したところ、前回の回答内容に誤りがございました。

    大変申し訳ございません。正しい内容を以下に記載するため、ご確認ください。


    個別アプリ専用支払方法は、「ひとつのプラットフォームアプリと利用者(契約ID)の組み合わせ」に対してひとつ登録可能です。

    登録しておくと、該当の契約IDに対してAPI経由で取引登録するときに、denominationCode(支払金種コード)、 cardCompany(クレジットカード会社名)、 slipNumber(キャッシュレス決済時の伝票番号)を設定できるようになります。

    ※上記項目の設定方法については、仕様書の「取引登録 >depositOthers」の項目をご確認ください。

    取引登録API:https://www1.smaregi.dev/apidoc/#operation/createTransaction


    すなわち利用者毎に個別アプリ専用支払方法を登録していただくこととなりますので、個別アプリ専用支払方法登録のタイミングは、お客様想定している通り利用者通知のタイミングとなります。

    ※利用者毎に異なるpaymentMethodIdを取得いただきますが、paymentMethodNameは同じものをご設定ただく想定となります。


    なお利用者がプラットフォームアプリを解約しても、一度登録済みの「個別アプリ専用支払方法」は削除されず残り続けます。

    そのため利用者が再契約を行った際などに、既に個別アプリ専用支払方法が登録されているプラットフォームアプリと利用者(契約ID)の組み合わせでAPIを実行すると、403エラーとなります。

    こちらについてはスキップするような処理で回避していただければと存じます。

答え

  • @ashizaki

    個別アプリ専用支払方法は、ひとつのプラットフォームアプリに対してひとつだけ設定可能です。

    そのため、既に個別アプリ専用支払方法が登録されているプラットフォームアプリにて再度APIを実行すると、403エラーとなります。

    (「同一クライアントIDに紐づく個別アプリ専用支払方法の登録件数の上限をオーバーしたため、登録できません。」と403エラー)

    上記の通り利用者通知のタイミングで都度APIを実行すると2回目以降はエラーが発生するため、スキップするような処理で回避していただければと存じます。


    なお個別アプリ専用支払方法は該当取引がどのプラットフォームアプリで登録されたのかを分かるようにするための手段となり、「PFアプリ名」 = 「個別アプリ専用支払方法名」となることを想定しています。

    利用者通知のタイミングではなく、該当アプリを本番環境と疎通する前の段階で、個別アプリ専用支払方法を登録する運用をご検討いただけますと幸いです。

  • November 2023 編集されました

    ご返信ありがとうございます。

    利用者通知のタイミングではなく、該当アプリを本番環境と疎通する前の段階で、個別アプリ専用支払方法を登録する運用をご検討いただけますと幸いです。

    上記についてですが、

    個別アプリ専用支払方法登録

    は、アプリ契約者様毎に、

    POST https://api.smaregi.jp/{アプリ契約者様契約ID}/pos/app_payment_method

    で作成するのではなく、

    本番環境疎通前に、

    POST https://api.smaregi.jp/{アプリ作成者の契約ID}/pos/app_payment_method

    で作成しておけば、そのアプリ利用者に対して

    POST https://api.smaregi.jp/{アプリ契約者様契約ID}/pos/transactions

    で取引作成する際に、depositOthersで指定することができるということなのでしょうか?


    同じPOSのAPIで、個別アプリ専用支払方法登録のみ、契約IDの意味が異なるのは違和感があります。

    アプリ開発の際は、どうしても「開発者の契約ID」と「利用者(テスト)の契約ID」がイコールになってしまうので、

    どちらでもAPIが実行できてしまうので、どちらなのか検証できません。

  • ご回答ありがとうございます。

    • 利用者通知のタイミングで、固定名称で、個別アプリ専用支払方法を登録する
    • 上記登録時に、登録の直前に、取得APIをコールし、すでにその項目があった場合作成をせずに取得したものを返す

    の仕様で実装します。

    ただし、開発環境で一度作成してしまった場合、再度新規作成のケースの実行が正しく動作するかどうかを試すことができないのが

    少し気がかりなのですが、アプリの申請時に、

    そのあたりをスマレジ運営側で確認されたりするのでしょうか?

    ぶっつけ本番になってしまうので、

    もし、サンドボックス環境で、登録済みの、個別アプリ専用支払方法を削除する方法などございましたら、

    教えていただけますと幸いです。

  • @ashizaki

    現時点では一度登録した「個別アプリ専用支払方法」を削除することは出来かねます。

    ご不便をおかけし申し訳ございません。

    社内で確認したところ、来年春ごろに削除APIを追ってリリースする予定となっておりますので、お待ちいただけますと幸いです。