Skip to main content
POST
/
merchant
/
metric
/
event
/
new
New Merchant Metric Event
curl --request POST \
  --url https://api.unibee.dev/merchant/metric/event/new \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "externalEventId": "<string>",
  "metricCode": "<string>",
  "aggregationUniqueId": "<string>",
  "aggregationValue": 123,
  "email": "account@unibee.dev",
  "externalUserId": "<string>",
  "metricProperties": {},
  "productId": 123,
  "userId": 123
}
'
{
  "code": 123,
  "data": {
    "merchantMetricEvent": {
      "aggregationPropertyData": "<string>",
      "aggregationPropertyInt": 123,
      "aggregationPropertyString": "<string>",
      "chargeInvoiceId": "<string>",
      "createTime": 123,
      "eventCharge": {
        "chargeAmount": 123,
        "chargePricing": {
          "chargeType": 123,
          "graduatedAmounts": [
            {
              "endValue": 123,
              "flatAmount": 123,
              "perAmount": 123,
              "startValue": 123
            }
          ],
          "metricId": 123,
          "standardAmount": 123,
          "standardStartValue": 123
        },
        "currency": "<string>",
        "currentValue": 123,
        "graduatedStep": {
          "endValue": 123,
          "flatAmount": 123,
          "perAmount": 123,
          "startValue": 123
        },
        "planId": 123,
        "totalChargeAmount": 123,
        "unitAmount": 123
      },
      "externalEventId": "<string>",
      "id": 123,
      "merchantId": 123,
      "metricId": 123,
      "metricLimit": 123,
      "subscriptionIds": "<string>",
      "subscriptionPeriodEnd": 123,
      "subscriptionPeriodStart": 123,
      "used": 123,
      "userId": 123
    }
  },
  "merchantId": 123,
  "message": "<string>",
  "redirect": "<string>",
  "requestId": "<string>"
}

Endpoint Overview

POST https://api.unibee.dev/merchant/metric/event/new New Merchant Metric Event

Authorization

All UniBee Merchant API requests require authentication via API key.
HeaderRequiredDescription
AuthorizationYesBearer <your_api_key>
Content-TypeYesapplication/json (for request body)

Parameters

Parameters for this endpoint are listed below. The schema is also shown in the Try it panel.

Request body

NameTypeRequiredDescription
aggregationUniqueIdstringNoAggregationUniqueId, valid when AggregationType is count unique. If provided, it has higher priority and will override the value in MetricProperties for the AggregationProperty field
aggregationValueintegerNoAggregationValue, valid when AggregationType is latest, max or sum. If provided, it has higher priority and will override the value in MetricProperties for the AggregationProperty field
emailstringNoEmail, UserId, ExternalUserId, or Email provides one of three options
externalEventIdstringYesExternalEventId, unique
externalUserIdstringNoExternalUserId, UserId, ExternalUserId, or Email provides one of three options
metricCodestringYesMetricCode
metricPropertiesstringNo
productIdintegerNoId of product. Default product will use if productId not specified and subscriptionId is blank
userIdintegerNoUserId, UserId, ExternalUserId, or Email provides one of three options

Request examples

cURL

curl -X POST "https://api.unibee.dev/merchant/metric/event/new" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "aggregationUniqueId": "id_example",
  "aggregationValue": 0,
  "email": "user@example.com",
  "externalEventId": "id_example",
  "externalUserId": "id_example",
  "metricCode": "",
  "metricProperties": "",
  "productId": 0,
  "userId": 0
}'

Sandbox

curl -X POST "https://api-sandbox.unibee.top/merchant/metric/event/new" \
  -H "Authorization: Bearer YOUR_SANDBOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "aggregationUniqueId": "id_example",
  "aggregationValue": 0,
  "email": "user@example.com",
  "externalEventId": "id_example",
  "externalUserId": "id_example",
  "metricCode": "",
  "metricProperties": "",
  "productId": 0,
  "userId": 0
}'

Response

Success responses return a JSON envelope with code, data, message, redirect, and requestId. code 0 indicates success.
FieldTypeDescription
codeintegerResponse code. 0 = success
dataobjectResponse payload
data.merchantMetricEventobject
messagestringHuman-readable message
requestIdstringRequest ID for support

Error handling

HTTP statusMeaning
400Bad request — invalid or missing parameters. Check message in the body.
401Unauthorized — missing or invalid API key.
404Not found — invalid path or resource.
500Server error — retry with backoff.
When code in the response body is non-zero, check message for details. Use requestId when contacting support.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
externalEventId
string<string>
required

ExternalEventId, unique

metricCode
string<string>
required

MetricCode

aggregationUniqueId
string<*string>

AggregationUniqueId, valid when AggregationType is count unique. If provided, it has higher priority and will override the value in MetricProperties for the AggregationProperty field

aggregationValue
integer<*int64>

AggregationValue, valid when AggregationType is latest, max or sum. If provided, it has higher priority and will override the value in MetricProperties for the AggregationProperty field

email
string<string>
default:account@unibee.dev

Email, UserId, ExternalUserId, or Email provides one of three options

externalUserId
string<string>

ExternalUserId, UserId, ExternalUserId, or Email provides one of three options

metricProperties
object
productId
integer<int64>

Id of product. Default product will use if productId not specified and subscriptionId is blank

userId
integer<int64>

UserId, UserId, ExternalUserId, or Email provides one of three options

Response

200 - application/json
code
integer<int>
data
object
merchantId
integer<int64>
message
string<string>
redirect
string<string>
requestId
string<string>