meboryプラットフォームAPIはゲーミフィケーション、ロイヤルティプログラムと精算等、殆どのプラットフォーム機能をカバーできます。
※meboryプラットフォームAPIを利用するにあたってお客様の利用規模の確認が必要です。また、お客様のユースケースに応じてAPIの新規追加も可能です。詳細についてはお問い合わせください。
お問い合わせにてS2SAPIの利用申請をしていただき、エンドポイント(endpoint)とアクセストークン(ACCESS_TOKEN)が用意されると下記APIにアクセスできるようになります。
meboryイシュアーコンソールで登録した商品、クーポン、割引券情報の一覧を取得する。
curl https://{endpoint}/rest/s2s/refinfo/{titleid}/getproductlist \
-X GET \
-H 'Authorization: Bearer {ACCESS_TOKEN}'
引数一覧 | |
---|---|
titleid | メンバーシップのid |
レスポンスサンプル
{
"product_list": [
{
"productId": "a34f5274-018a-1000-a013-5f747a675c1e",
"productCode": "",
"accountId": "e8eb973d-fdbb-431a-99a9-8667d7b32cb3",
"productName": "メロンパン",
"description": " 外サクサク、中しっとりのメロンパン",
"image": "",
"taxIncludedPrice": 108.0,
"tax": 8.0,
"metadata": "{\"PURCHASE_TRIGGER\": \"[{\\\"id\\\":null,\\\"eventId\\\":\\\"c5afd62a-018a-1000-8613-e24012f635f3\\\",\\\"meboryId\\\":null,\\\"triggered\\\":null,\\\"data\\\":1,\\\"meta\\\":\\\"{}\\\"}]\"}",
"productType": "NORMAL",
"expirationType": "NON_EXPIRATION",
"expirationPeriodStart": null,
"expirationPeriodEnd": null,
"expireDays": 0
},
{
"productId": "a352b7bc-018a-1000-9799-5d44eec77f12",
"productCode": "",
"accountId": "e8eb973d-fdbb-431a-99a9-8667d7b32cb3",
"productName": "アイスカフェラテ",
"description": "エスプレッソに冷たいミルクを注ぎ、絶妙な甘みと苦味のバランスが楽しめるカフェラテ",
"image": "",
"taxIncludedPrice": 324.0,
"tax": 24.0,
"metadata": "{}",
"productType": "NORMAL",
"expirationType": "NON_EXPIRATION",
"expirationPeriodStart": null,
"expirationPeriodEnd": null,
"expireDays": 0
},
{
"productId": "9e0092ff-018a-1000-952d-612a80596dd3",
"productCode": "",
"accountId": "e8eb973d-fdbb-431a-99a9-8667d7b32cb3",
"productName": "500円割引券",
"description": "会計金額が500円オフになるクーポンです",
"image": "",
"taxIncludedPrice": -500.0,
"tax": 1.0,
"metadata": "{}",
"productType": "COUPON_DISCOUNT_VALUE",
"expirationType": "EXPIRE_FROM_ASSIGNED",
"expirationPeriodStart": null,
"expirationPeriodEnd": null,
"expireDays": 365
},
{
"productId": "9dff1618-018a-1000-be2f-edf35dda86d2",
"productCode": "",
"accountId": "e8eb973d-fdbb-431a-99a9-8667d7b32cb3",
"productName": "アイスコーヒー引換券",
"description": "店頭でアイスコーヒー一杯と交換できます",
"image": "default",
"taxIncludedPrice": 0.0,
"tax": 0.0,
"metadata": "{}",
"productType": "TICKET",
"expirationType": "NON_EXPIRATION",
"expirationPeriodStart": null,
"expirationPeriodEnd": null,
"expireDays": 0
}
]
}
レスポンス詳細一覧 | |
---|---|
product_list | 登録されている商品のリスト |
productId | 商品の識別子 精算処理等のAPIの引数として使われます。 |
productCode | ユーザーが自由に登録できる識別子 任意登録となります。 |
accountId | 商品が所属するアカウントの識別子 |
productName | 商品名称 |
description | 商品の説明 |
image | 商品のイメージ画像 引換券、クーポン等meboryアプリに表示される商品以外は基本登録されません。 |
taxIncludedPrice | 商品の税込価額 |
tax | 商品の諸税金額 |
metadata | 商品のメタデータ 例えば購入時又は消費時に記録するアクティビティの情報等はメタデータとして保存されます。 |
productType | 商品のタイプ 一般商品(NORMAL)、商品券/引換券(TICKET)、値引きタイプクーポン(COUPON_DISCOUNT_VALUE)、パーセンテージ割引タイプのクーポン(COUPON_DISCOUNT_PERCENTAGE)があります。 |
expirationType | 商品券、クーポンの有効期限タイプ 無期限(NON_EXPIRATION)、指定日時(EXPIRE_DATE)、日数(EXPIRE_FROM_ASSIGNED)、指定した期間(FIXED_PERIOD)があります。 |
expirationPeriodStart | 有効期限の開始日時 無い場合はNULLになります。 |
expirationPeriodEnd | 有効期限の終了日時 無い場合はNULLになります。 |
expireDays | 有効期限の日数 無い場合は0になります。 |
meboryイシュアーコンソールで登録した商品セット情報の一覧を取得する。
curl https://{endpoint}/rest/s2s/refinfo/{titleid}/getproductsetlist \
-X GET \
-H 'Authorization: Bearer {ACCESS_TOKEN}'
引数一覧 | |
---|---|
titleid | メンバーシップのid |
レスポンスサンプル
{
"product_set_list": [
{
"productSetId": "a357c337-018a-1000-9b19-e0cf38eca867",
"accountId": "e8eb973d-fdbb-431a-99a9-8667d7b32cb3",
"productSetName": "メロパンカフェラテセット",
"description": "メロンパンとアイスカフェラテのセットで、単品より54円お得です",
"image": null,
"taxIncludedPrice": 378.0,
"tax": 28.0,
"metadata": "{}",
"productList": {
"{\"productId\":\"a34f5274-018a-1000-a013-5f747a675c1e\",\"productCode\":\"\",\"accountId\":\"e8eb973d-fdbb-431a-99a9-8667d7b32cb3\",\"productName\":\"メロンパン\",\"description\":\" 外サクサク、中しっとりのメロンパン\",\"image\":\"\",\"taxIncludedPrice\":108.0,\"tax\":8.0,\"metadata\":\"{\\\"PURCHASE_TRIGGER\\\": \\\"[{\\\\\\\"id\\\\\\\":null,\\\\\\\"eventId\\\\\\\":\\\\\\\"c5afd62a-018a-1000-8613-e24012f635f3\\\\\\\",\\\\\\\"meboryId\\\\\\\":null,\\\\\\\"triggered\\\\\\\":null,\\\\\\\"data\\\\\\\":1,\\\\\\\"meta\\\\\\\":\\\\\\\"{}\\\\\\\"}]\\\"}\",\"productType\":\"NORMAL\",\"expirationType\":\"NON_EXPIRATION\",\"expirationPeriodStart\":null,\"expirationPeriodEnd\":null,\"expireDays\":0}": 1,
"{\"productId\":\"a352b7bc-018a-1000-9799-5d44eec77f12\",\"productCode\":\"\",\"accountId\":\"e8eb973d-fdbb-431a-99a9-8667d7b32cb3\",\"productName\":\"アイスカフェラテ\",\"description\":\"エスプレッソに冷たいミルクを注ぎ、絶妙な甘みと苦味のバランスが楽しめるカフェラテ\",\"image\":\"\",\"taxIncludedPrice\":324.0,\"tax\":24.0,\"metadata\":\"{}\",\"productType\":\"NORMAL\",\"expirationType\":\"NON_EXPIRATION\",\"expirationPeriodStart\":null,\"expirationPeriodEnd\":null,\"expireDays\":0}": 1
}
}
]
}
レスポンス詳細一覧 | |
---|---|
product_set_list | 登録されている商品セットのリスト |
productSetId | 商品セットの識別子 精算処理等のAPIの引数として使われます。 |
accountId | 商品セットが所属するアカウントの識別子 |
productSetName | 商品セット名称 |
description | 商品セットの説明 |
image | 商品セットのイメージ画像 基本は設定されません。 |
taxIncludedPrice | 商品セットの税込価額 |
tax | 商品セットの諸税金額 |
metadata | 商品セットのメタデータ |
productList | 商品セットに含まれる商品と数のリスト |
meboryイシュアーコンソールで登録したアクティビティ情報の一覧を取得する。
curl https://{endpoint}/rest/s2s/refinfo/{titleid}/getactivitylist \
-X GET \
-H 'Authorization: Bearer {ACCESS_TOKEN}'
引数一覧 | |
---|---|
titleid | メンバーシップのid |
レスポンスサンプル
{
"activity_list": [
{
"eventSpec": 4264191,
"valueSpec": 0,
"minValue": 0,
"maxValue": 10000000,
"id": "ddb6c870-0189-1000-9665-324fd200ec11",
"belongTo": "0000-0000-da66ce69-0189-1000-ac24-d93bb63b4c7b",
"name": "スコアアタック",
"description": "meboryオンラインデモで[[DESC_PLAIN_TEXT]]の得点を獲得した",
"visualConcept": "img",
"eventType": "KEEP",
"updateOrder": "ASC",
"dataValue": 0,
"meta": "{}",
"triggerablePeriodStart": 1691641890927,
"triggerablePeriodEnd": 1691641890927
},
{
"eventSpec": 4260095,
"valueSpec": 0,
"minValue": 0,
"maxValue": 10000000,
"id": "addf62e7-018a-1000-a31a-a1b9d332386d",
"belongTo": "0000-0000-da66ce69-0189-1000-ac24-d93bb63b4c7b",
"name": "非表示アクティビティ",
"description": "meboryアプリには表示されないアクティビティ",
"visualConcept": "img",
"eventType": "KEEP",
"updateOrder": "ASC",
"dataValue": 0,
"meta": "{}",
"triggerablePeriodStart": 1695134212838,
"triggerablePeriodEnd": 1695134212838
},
{
"eventSpec": 4351,
"valueSpec": 0,
"minValue": -9223372036854775808,
"maxValue": 9223372036854775807,
"id": "c5afd62a-018a-1000-8613-e24012f635f3",
"belongTo": "0000-0000-da66ce69-0189-1000-ac24-d93bb63b4c7b",
"name": "メロンパン消費量",
"description": "累計[[DESC_PLAIN_TEXT]]個のメロンパンを購入した",
"visualConcept": "img",
"eventType": "COUNT",
"updateOrder": "ASC",
"dataValue": 1,
"meta": "{}",
"triggerablePeriodStart": 1695533749801,
"triggerablePeriodEnd": 1695533749801
}
]
}
レスポンス詳細一覧 | |
---|---|
activity_list | 登録されているアクティビティのリスト |
eventSpec | アクティビティ挙動定義のビットフラグ |
valueSpec | アクティビティ値定義のビットフラグ |
minValue | アクティビティ値で記録可能な最小値 |
maxValue | アクティビティ値で記録可能な最大値 |
id | アクティビティの識別子 |
belongTo | アクティビティが所属するメンバーシップの識別子 |
name | アクティビティの名称 |
description | アクティビティの説明 |
visualConcept | アクティビティのイメージ画像 |
eventType | アクティビティ記録の更新方式 一時停止(DISABLED)、最初の記録を保持する(KEEP)、新規記録を追加する(ADD)、値を更新する(UPDATE)、値を加算する(COUNT)があります。 |
updateOrder | アクティビティ記録の更新方式が「値を更新する(UPDATE)」に設定されている際の更新条件 値が既存値より小さい場合のみ更新する(DESC)、値が既存値より大きい場合のみ更新する(ASC)、常に新しい値に更新する(ALL)があります。 |
dataValue | アクティビティ記録のデフォルト値 |
meta | アクティビティのメタデータ |
triggerablePeriodStart | アクティビティの記録可能期間の開始日時 eventSpecの設定次第で有効化されます。 |
triggerablePeriodEnd | アクティビティの記録可能期間の終了日時 eventSpecの設定次第で有効化されます。 |
対象会員が所有するクーポン、割引券情報の一覧を取得する。
curl https://{endpoint}/rest/s2s/billing/{title_id}/getvoucher" \
-X GET \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Signed-mebory: {SIGNED_MEBORY}'
引数一覧 | |
---|---|
titleid | メンバーシップのid |
SIGNED_MEBORY | 署名された会員証情報 |
レスポンスサンプル
{
"result": [
{
"recordId": "f0b47382-018a-1000-9ab6-60c6257a193b",
"productId": "9dff1618-018a-1000-be2f-edf35dda86d2",
"meboryId": "991587a4-018a-1000-9789-50ac53347174",
"consoleUserId": "online-demo-issuer",
"accountId": "e8eb973d-fdbb-431a-99a9-8667d7b32cb3",
"modified": 1696255472500,
"expire": null,
"productCode": null,
"productName": "アイスコーヒー引換券",
"description": "店頭でアイスコーヒー一杯と交換できます",
"image": "default",
"taxIncludedPrice": 0.0,
"tax": 0.0,
"metadata": "{}",
"productType": "TICKET",
"expirationperiodstart": null
},
{
"recordId": "eb8ee7d1-018a-1000-b9f6-cfee04dea67d",
"productId": "9e0092ff-018a-1000-952d-612a80596dd3",
"meboryId": "991587a4-018a-1000-9789-50ac53347174",
"consoleUserId": "online-demo-issuer",
"accountId": "e8eb973d-fdbb-431a-99a9-8667d7b32cb3",
"modified": 1696169125840,
"expire": 1727705125840,
"productCode": null,
"productName": "500円割引券",
"description": "会計金額が500円オフになるクーポンです",
"image": "",
"taxIncludedPrice": -500.0,
"tax": 1.0,
"metadata": "{}",
"productType": "COUPON_DISCOUNT_VALUE",
"expirationperiodstart": null
}
]
}
レスポンス詳細一覧 | |
---|---|
result | 対象会員が所持する引換券、クーポンのリスト |
recordId | 引換券、クーポンの識別子 精算処理等のAPIの引数として使われます。 |
productId | 商品の識別子 |
meboryId | 会員証の識別子 |
consoleUserId | 引換券、クーポンを発行した管理者アプリ(meboryイシュアーコンソール)ユーザーの識別子 |
accountId | 引換券、クーポンを発行したアカウントの識別子 |
modified | 引換券、クーポンが発行された日時 |
expire | 引換券、クーポンの有効期限 無い場合はNULLになります。 |
productCode | ユーザーが自由に登録できる識別子 |
productName | 商品名称 |
description | 商品の説明 |
image | 商品のイメージ画像 引換券、クーポン等meboryアプリに表示される商品以外は基本登録されません。 |
taxIncludedPrice | 引換券の場合は購入時の税込価額、値引きタイプクーポン(COUPON_DISCOUNT_VALUE)の場合は値引き金額 |
tax | 引換券の場合は購入時の諸税金額、パーセンテージ割引タイプのクーポン(COUPON_DISCOUNT_PERCENTAGE)の場合は値引率 |
metadata | 商品のメタデータ 例えば購入時又は消費時に記録するアクティビティの情報等はメタデータとして保存されます。 |
productType | 商品のタイプ 商品券/引換券(TICKET)、値引きタイプクーポン(COUPON_DISCOUNT_VALUE)、パーセンテージ割引タイプのクーポン(COUPON_DISCOUNT_PERCENTAGE)があります。 |
expirationPeriodStart | 有効期限の開始日時 無い場合はNULLになります。 |
対象会員が所有するポイントの合計を取得する。
curl https://{endpoint}/rest/s2s/billing/{title_id}/getpoint" \
-X GET \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Signed-mebory: {SIGNED_MEBORY}'
引数一覧 | |
---|---|
titleid | メンバーシップのid |
SIGNED_MEBORY | 署名された会員証情報 |
レスポンスサンプル
{
"result":77
}
レスポンス詳細一覧 | |
---|---|
result | 対象会員が所有するポイント数です。 |
対象会員に対して一般商品、クーポン、引換券、ポイント、アクティビティ等の精算処理を行う。
curl https://{endpoint}/rest/s2s/billing/{title_id}/billing" \
-X POST \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Signed-mebory: {SIGNED_MEBORY}' \
-H 'Content-Type: application/json' \
-d '{
"productitems" : [
"a34f5274-018a-1000-a013-5f747a675c1e",
"9dff1618-018a-1000-be2f-edf35dda86d2"
],
"productsetitems" : [
"a357c337-018a-1000-9b19-e0cf38eca867"
],
"voucheritems" : [
"f0b47382-018a-1000-9ab6-60c6257a193b"
],
"pointitems" : [
{
"point" : 10,
"expiration" : 1727873080000
},
{
"point" : -20,
"expiration" : 0
}
],
"activityitems" : [
{
"activityId" : "c5afd62a-018a-1000-8613-e24012f635f3",
"activityValue" : 1
}
],
"pointexpirationts" : 0
}'
引数一覧 | |
---|---|
titleid | メンバーシップのid |
SIGNED_MEBORY | 署名された会員証情報 |
productitems | 購入する商品の識別子リスト |
productsetitems | 購入する商品セットの識別子リスト |
voucheritems | 使用する引換券、クーポンの識別子リスト |
pointitems | 追加もしくは付与するポイントの一覧 ポイントを使用する場合は負の整数、付与の場合は正の整数と有効期限のタイムスタンプ、有効期限無しの場合はタイムスタンプを0に設定してください。 ポイント還元率が設定された場合は精算金額に応じてポイントが自動で付与されますので、こちらのリストに追加する必要はありません。 |
activityitems | 記録するアクティビティのリスト アクティビティは識別子と値で構成されます。 商品に登録されているアクティビティは精算処理によって自動で記録されますので、こちらのリストに追加する必要はありません。 |
pointexpirationts | ポイント還元率が設定された場合に精算金額に応じて自動付与されるポイントの有効期限のタイムスタンプ 有効期限無しの場合はタイムスタンプを0に設定してください。 |
※精算処理はactivityitems(アクティビティの記録)を除き、トランザクション処理になります。
レスポンスサンプル
{
"result": 0,
"achievement": [],
"voucher_record": [
{
"recordId": "faeb6f32-018a-1000-ba74-63ced38a1c27",
"productId": "9dff1618-018a-1000-be2f-edf35dda86d2",
"meboryId": "991587a4-018a-1000-9789-50ac53347174",
"consoleUserId": "online-demo-issuer",
"accountId": "e8eb973d-fdbb-431a-99a9-8667d7b32cb3",
"modified": 1696426848029,
"expire": null
}
]
}
レスポンス詳細一覧 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
result | 処理結果 0の場合は精算処理が正常完了、0の以外の場合は精算処理が行われていないことを示します。 詳細は下記のビットフラグをご参照ください。
|
||||||||||||||||||
achievement | アクティビティの精算によって達成できたアチーブメント一覧 | ||||||||||||||||||
voucher_record | 精算処理によって会員に付与された引換券、クーポンの一覧 即時にmeboryアプリに反映されます。 |
||||||||||||||||||
activity_id_not_found | アクティビティ定義が存在せず精算できなかったアクティビティ識別子一覧 |
エラーケース一覧 | ||
---|---|---|
400 | Unexpected input | JSONのフォーマット又は引数が正しくありません。 |
400 | Too many input | 追加もしくは付与するポイント(pointitems)又は記録するアクティビティ(activityitems)の数が上限の100を超えています。 |
400 | Product not found : {id} | 精算対象の商品が見つかりませんでした。 |
400 | Product set not found : {id} | 精算対象の商品セットが見つかりませんでした。 |
400 | Voucher not found : {id} | 精算対象の引換券又はクーポンが見つかりませんでした。 |
対象アクティビティの値の上位RANKING_SIZE分の記録を取得する。
curl https://{endpoint}/rest/s2s/gamification/{title_id}/{activity_id}/ranking/desc" \
-X GET \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-d 'ranking_size: {RANKING_SIZE}'
引数一覧 | |
---|---|
titleid | メンバーシップのid |
activity_id | アクティビティのid |
RANKING_SIZE | 記録数 |
レスポンスサンプル
{
"result": [
{
"id": "ebbdce28-018a-1000-ba70-73c62eadfae2",
"eventId": "ddb6c870-0189-1000-9665-324fd200ec11",
"meboryId": "752d1544-018a-1000-859c-f39b928a4774",
"triggered": 1696172199464,
"data": 8199276,
"meta": "{}"
},
{
"id": "adecc983-018a-1000-a735-7b2eecd3fb7b",
"eventId": "ddb6c870-0189-1000-9665-324fd200ec11",
"meboryId": "991587a4-018a-1000-9789-50ac53347174",
"triggered": 1695135091075,
"data": 7537074,
"meta": "{}"
},
{
"id": "dddbf665-0189-1000-a3fd-fe202b13311f",
"eventId": "ddb6c870-0189-1000-9665-324fd200ec11",
"meboryId": "da6942cd-0189-1000-a8c5-4bfc75d85abf",
"triggered": 1691644327525,
"data": 634033,
"meta": "{}"
}
]
}
レスポンス詳細一覧 | |
---|---|
result | 対象アクティビティの記録一覧 |
id | 記録の識別子 |
eventId | アクティビティの識別子 |
meboryId | 記録所有者の会員証識別子 |
triggered | 記録された日時のタイムスタンプ |
data | 記録の値 |
meta | 記録のメタデータ |
会員の登録情報を取得します。
※会員がmeboryアプリ上情報を共有するように設定されている場合のみ取得できます。
curl https://{endpoint}/rest/s2s/user/{title_id}/{mebory_id}/info" \
-X GET \
-H 'Authorization: Bearer {ACCESS_TOKEN}'
引数一覧 | |
---|---|
titleid | メンバーシップのid |
レスポンスサンプル
{
"result": {
"nickname": "demoユーザー",
"firstname": "太郎",
"middlename": "",
"lastname": "デモ",
"email": "demo.user@mebory.com",
"country": "JPN",
"phoneNumber": "",
"gender": "NULL",
"birthday": "1989-03-09",
"address": ""
}
}
レスポンス詳細一覧 | |
---|---|
result | 対象会員の登録情報一覧 |
nickname | 表示名 |
firstname | 名 |
middlename | ミドルネーム |
lastname | 姓 |
メールアドレス | |
country | 国 |
phoneNumber | 電話番号 |
gender | 性別 |
birthday | 生年月日 |
address | 住所 |
C2S APIはシステム連携やセキュリティ等の要件もありますので、基本お客様のユースケースに合わせてご提案させて頂く形となります。詳細についてはお問い合わせください。