Skip to main content

本章で得られること

本章を読むと、次のことができるようになります。
  • 商品の価格設定方式と、自分で計算した税額を申告する必要があるかに基づいて、税抜価格設定、両価格の指定、税込価格設定のいずれかを選択できます。
  • どの税項目を Waffo が設定する必要があるか、連携前にどの業務ルールを確認すべきかを把握できます。
  • 支払いと返金のリクエストを正しく構築し、照会と Webhook における金額の変化、空値、エラーを処理できます。
一回限りの支払い(ONE_TIME_PAYMENT)は、税抜価格設定、両価格の指定、税込価格設定の 3 つの方式をサポートします。 以下の支払いリクエストの例では POST /api/v1/order/create を使用し、結果は POST /api/v1/order/inquiry で照会します。 Subscription は税抜価格設定のみをサポートし、両価格の指定と税込価格設定はサポートしません。リクエスト項目については、Subscription 作成 APIを参照してください。

金額の指定方法を選ぶ

まず商品価格がすでに税込かどうかを判断し、次に自分で計算した税額を Waffo に申告する必要があるかを判断します。3 つの方式はリクエストの金額項目の組み合わせで決まります。 自社で税額を計算する場合は、自社で計算した税額の検証を確認してください。 税込価格を指定した後も、割引、為替換算、手数料がユーザーの最終的な実払額に影響することがあります。項目の組み合わせと例は後述の「連携の詳細」を参照してください。

Waffo が設定する税項目

以下の税項目は Waffo が設定します。必要な取引の挙動を Waffo に伝え、Sandbox と Production の設定をそれぞれ確認してください。

税サービスオプションの違い

  • Calculation Only:Waffo は税額を計算し、支払い時にユーザーから徴収し、Settlement を通じて徴収した税をあなたに送金します。税務当局への納付はあなたが担当します。税の分離完了後、各税額は注文照会 APIの orderTaxAmount と対応する Webhook から読み取ることができます。
  • Full Tax Service:Waffo が税額の計算、税の徴収および納付を担当します。連携前に、適用範囲と分担を Waffo に確認してください。

自社で計算した税額の検証

この設定は両価格の指定にのみ適用されます。税抜価格設定と税込価格設定では、この申告税額の検証は使用しません。
申告した税額と Waffo の計算値を比較します。一致しない場合、Waffo の設定により取引を拒否するか、Waffo の計算値で上書きすることができます。

連携の詳細

連携の準備

税設定は Waffo が管理します。連携前に、Merchant ID、Sandbox または Production 環境、販売国、商品カテゴリを提供し、その環境に必要な税契約と支払い方法がすでに用意されていることを確認してください。 本ページの税込価格は、注文通貨での価格です。これは Merchant が税を負担することを意味するものではなく、為替換算、手数料、割引の処理を経た後にユーザーが実際に支払う金額と等しいことを保証するものでもありません。

注文作成時のパラメータ指定

金額はすべて文字列を使用し、通貨は orderCurrency を取得します。少なくとも 1 つの金額基準を指定してください。税込価格は 0 より大きい必要があり、通貨の精度要件を満たす必要があります。国コードは ISO 3166-1 alpha-3 を使用し、たとえば PHL です。詳細は金額と通貨を参照してください。 税抜価格設定では、taxInfo 全体を省略してください。空のオブジェクト {} を指定した場合も、項目の組み合わせが不正なため A0003 が返されます。taxInfo を省略することは免税を要求することを意味しません。 以下の JSON は、注文作成リクエストのうち税に関連する部分のみを示しています。Merchant、支払い方法、ユーザー、リクエスト識別子、時刻、署名などの共通パラメータは引き続き補完する必要があります。 3 つの方式を比較するため、注文通貨と支払い通貨がともに USD、適用税率が 10%、割引と追加手数料がないと仮定します。以下の税率と金額は計算の説明にのみ使用するものであり、PHL の実際の税率やお客様の税契約を表すものではありません。両価格の指定の結果は、実際の設定における申告検証ポリシーによって決まります。
上記の仮定では、税は 10.00 で、ユーザーは 110.00 を支払います。一致する課税設定がない場合、この例だけから必ず 10.00 が加算されると判断することはできません。

支払い結果を読み取る

作成レスポンスは注文識別子、ステータス、次のアクションを返し、本節の税金額の項目は含みません。注文作成後に POST /api/v1/order/inquiry でこれらの項目を取得してください。注文照会と PAYMENT_NOTIFICATION は、以下の表に示す税項目を返します。照会項目はレスポンスの data オブジェクトに含まれます。Webhook の外側の構造は、イベントタイプの文書を参照してください。 税抜価格設定のレスポンスは orderTaxAmount を持ちながら taxInfo を持たないことがあります。したがって、taxInfo の有無を課税の判断に使用することはできません。 税込価格設定の途中状態では、orderAmount = "110.00"、orderTaxAmount が空、taxInfo.orderAmountInclTax = "110.00" が同時に現れることもあります。この場合、再度税を減算または加算しないでください。リクエストの元の値を保存し、最終的な照会または Webhook のステータスと金額で結果を照合してください。 完全な項目とレスポンス例については、注文照会 APIを参照してください。 orderTaxAmount は税込総額の表現にすでに含まれているため、finalDealAmount に再度加算しないでください。支払いが完了していない場合、現在計算された金額をすでに引き落とされた金額として扱わないでください。Webhook の署名検証とステータス処理については、Webhook の概要を参照してください。

返金時の指定方法

返金金額も注文通貨を使用します。refundAmount は税抜返金金額を表します。taxInfo.refundAmountInclTax を指定できるかどうかは、元の支払い注文の指定方法によって決まります。 以下は POST /api/v1/order/refund の部分的なリクエストです。元の注文番号、返金リクエスト識別子、理由などの共通パラメータは引き続き補完する必要があります。
3 種類の元の支払い注文すべてに適用されます。refundAmount のみを指定し、対応する税の返金は Waffo が計算します。
上記の金額は前文の仮定を引き継いでいます。全額返金は元注文の最終金額と現在の返金可能残高に基づくべきであり、割引前のリクエスト元の値をそのまま流用しないでください。一部返金の税額は Waffo が計算し累計金額を検証します。注文比率で独自に端数処理した結果を権威ある返金税結果として扱わないでください。 返金照会 POST /api/v1/refund/inquiry と REFUND_NOTIFICATION では、主に以下を読み取ります。 返金が進行中または失敗した場合、返された計算金額はユーザーがすでに返金を受け取ったことを意味しません。最終的な成功ステータスとあわせて着金を照合してください。 同じ paymentRequestId または refundRequestId を再試行する場合は、元の金額、税込金額、指定方法を変更しないでください。不明な結果を先に照会してから次のステップを決めてください。詳細は冪等性を参照してください。

よくあるエラー

連携チェックリスト

  • 対象環境で Waffo に税契約、商品情報、請求情報の要件を確認します。
  • 1 つの価格設定方式でリクエストを構築し、非課税、課税、郵便番号不足、および申告が一致しない場合の各有効ポリシーの結果を検証します。
  • リクエストの元の値、注文通貨の金額、ユーザー支払い通貨の金額をそれぞれ保存します。
  • 税込価格設定の作成途中状態と支払い完了後で項目がどう変化するかを検証します。
  • 元の支払い注文タイプごとに全額返金と一部返金を検証し、照会と Webhook を確認します。