プラットフォームAPIを使えば簡単にmebory機能を組み込めます。

meboryプラットフォームAPIはゲーミフィケーション、ロイヤルティプログラムと精算等、殆どのプラットフォーム機能をカバーできます。

※meboryプラットフォームAPIを利用するにあたってお客様の利用規模の確認が必要です。また、お客様のユースケースに応じてAPIの新規追加も可能です。詳細についてはお問い合わせください。

mebory APIで簡単に既存アプリと連携できます。
S2S(server to server) 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の以外の場合は精算処理が行われていないことを示します。
詳細は下記のビットフラグをご参照ください。
0x1 販売記録が追加できませんでした。
0x2 引換券又はクーポンの発行ができませんでした。
0x4 引換券又はクーポンを使用できませんでした。
0x8 ポイントの使用又は付与ができませんでした。
0x1024 使用しようとしたポイント数が保有ポイント数を上回っています。
0x2048 未知エラー。
また、エラーコードではなく、下記メッセージの場合は
cannot_verify 署名された会員証情報が検証できませんでした。
No enough point 使用しようとしたポイント数が保有ポイント数を上回っています。
Nothing to billing 精算処理の対象(productitems、productsetitems、voucheritems、pointitems)が無かったため、(アクティビティの処理がある場合)アクティビティの記録のみが行われました。
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
email メールアドレス
country
phoneNumber 電話番号
gender 性別
birthday 生年月日
address 住所
C2S(client to server) API

C2S APIはシステム連携やセキュリティ等の要件もありますので、基本お客様のユースケースに合わせてご提案させて頂く形となります。詳細についてはお問い合わせください。