TL;DR
商品の割引価格APIはドキュメント化されていない。
list_catalog
APIで、タイプをSALE_PRICE
を指定すれば全ての割引設定を取得できる。
割引価格とは
商品情報を編集画面で割引価格を追加できる。これはスクエアのsale_price
ということだ。
ここに追加して保存すれば、割引価格が反映される
ノードキュメント
このデータに関するドキュメントは一切ない。Googleでsite:developer.square.comを検索しても何も出てこない。
当然CatalogのObject Typeページにも記載なし。
オフィシャル掲示板でスレがあるが、答えは、「残念ながら、現時点(2023/10)で割引価格を取得するAPIを提供していない」。
2年前の情報だったが、一番最新でもある。
推測
ではどうやってこの秘密APIを見つけたか?
フロントエンド側の商品画面で割引情報があるということは、HTTPリクエストで取得できるということなので、商品編集画面で発行されたリクエストをDev Toolsで確認してみた。
レスポンスには下記の情報があるので、
- 割引価格は
item_variation_data
にあるから、少なくともcatalogデータの一部であることに間違いない - タイプ名はSALE_PRICE
"item_variation_data": {
"item_id": "hogehoge",
"name": "ZIND.dev一年契約",
"sku": "362341R",
"ordinal": 1,
"pricing_type": "FIXED_PRICING",
"price_money": {
"amount": 120000,
"currency": "USD"
},
"location_overrides": [
{
"location_id": "YOKOHAMA",
"track_inventory": true
}
],
"track_inventory": true,
"sellable": true,
"stockable": true,
"channels": [
"CH_ZIND.DEV",
],
"sale_prices": [
{
"type": "SALE_PRICE",
"id": "hogehoge",
"updated_at": "2025-09-02T15:07:12.925Z",
"created_at": "2025-09-02T15:07:13.018Z",
"version": 1756825632925,
"is_deleted": false,
"present_at_all_locations": true,
"sale_price_data": {
"item_variation_id": "hogehoge",
"sale_price_type": "SALE_PRICE_TYPE_FIXED_AMOUNT",
"amount_money": {
"amount": 100000,
"currency": "USD"
}
}
}
]
}
上記の情報+脳内妄想で、もしかしたらCatalogのList APIでObject TypeをSALE_PRICE
に指定すればいい?
ビンゴー。
終わり
というわけで。Squareの割引APIの推理コントでした。
って、なぜ普通にリクエストできるのに、ドキュメントされていないか?
- 単純に忘れてしまった
- 最近リリースしたばかりなのでまだ不安定、みんなに使われたくない
- そもそも公開すべきではなかったAPIをうっかり公開しちゃった
だと思う。