跳到主要内容

CreateSKUInAudit

Creates a new SKU for the given app and submits it for audit. The SKU is set as available and enabled for sale by default, but will not be visible to users until it passes the audit process.

Host: dip-cb.binanceapi.com

POST /mp-api/v1/apps/{appId}/skus

Header

ParameterRequiredDescription
X-Mp-Open-Api-TokenYesJWT token. Please refer to Description of External Interface Signature Authentication Algorithm

Path Parameters

ParameterDescription
appIdAppId of the mini program

Body Parameters

ParameterTypeRequiredDescriptionExample
categorystringYesCategory of this SKU.
See Valid Categories for accepted values.
"Games"
coverImageFileIdstringYesCover image for this SKU.
Must be a file ID returned by UploadFile. The file must have passed safety checks before use.
f7574adb-0ccb-4281-9ed6-943f11a1e85a
names{[key:string]: string}YesLocale-keyed display name map for this SKU.
Rules: en key is required. Maximum 128 characters per value.
See the Language Code section for accepted keys.
{"en": "PUBG 100 point"}
skuIdstringYesMerchant-assigned identifier for this SKU.
Rules: Must be unique within your app. Maximum 255 characters.
pubg_point_100
originalPricenumberRequired when pricing_mode is "flat"List price in USD.
"flat" mode: Required. Must be > 0. Must be ≥ sellingPrice. Sub-cent amounts are truncated (e.g., 9.9999 → 9.99).
"tiered" mode: Ignored if provided — auto-calculated from pricing_tiers as the maximum original_price_usd_cent across all tiers.
"custom" mode: Optional. Saved as-is if provided; otherwise back-calculated from discountPercentage.
9.99
sellingPricenumberRequired when pricing_mode is "flat"Actual selling price in USD.
"flat" mode: Required. Must be > 0. Must be ≤ originalPrice. Sub-cent amounts are truncated (e.g., 9.9999 → 9.99).
"tiered" mode: Ignored if provided — auto-calculated from pricing_tiers as the minimum selling_price_usd_cent across all tiers.
"custom" mode: Optional. Saved as-is if provided; otherwise set to min_selling_price_usd_cent.
6
discountPercentageintRequired when pricing_mode is "custom"Discount percentage shown to buyers.
Values: 1–99.
"custom" mode: Required. Used to back-calculate originalPrice from min_selling_price_usd_cent (formula: original = min / (1 − discount/100)).
"flat" / "tiered" mode: Optional. Displayed as the price reduction badge; if omitted, computed automatically from the price difference.
32
countryWhitelistArray<String>NoCountries where this SKU is eligible to be displayed.
Values: ISO 3166-1 alpha-2 country codes.
If omitted, the SKU is available in all countries.
["JP"]
countryBlacklistArray<String>NoCountries where this SKU must not be displayed.
Values: ISO 3166-1 alpha-2 country codes.
["CN", "GB"]
pathstringNoMini-program page path to open when the SKU is tapped.
Rules: Must start with /. Maximum 1024 characters. Query parameters (after ?) are parsed and stored separately.
Defaults to /pages/index/index when omitted.
/pages/index/index?foo=bar&baz=qux
descriptionstringYesDescription for this SKU.A virtual top-up item
stocksintNoMerchant-provided inventory quantity.100
autoDeliveryboolNoWhether the SKU supports automatic delivery after purchase.true
pricing_modestringNoDetermines how the SKU is priced. Defaults to "flat" when omitted.
Values:
- "flat" — single fixed price defined by sellingPrice / originalPrice.
- "tiered" — multiple fixed denominations defined by pricing_tiers.
- "custom" — buyer enters any amount within the range defined by min_selling_price_usd_cent / max_selling_price_usd_cent.
"tiered"
pricing_tiersArray<PricingTier>Required when pricing_mode is "tiered"List of fixed denomination options for this SKU.
Rules: 1–50 tiers. Each tier must have a unique tier_id.
"tiered" mode: Required.
"flat" / "custom" mode: Must be absent or empty.
See PricingTier Object below.
see example below
min_selling_price_usd_centintRequired when pricing_mode is "custom"Minimum amount the buyer may enter, in USD cents.
Rules: Must be > 0. Must be < max_selling_price_usd_cent.
Only applies when pricing_mode is "custom".
1000
max_selling_price_usd_centintRequired when pricing_mode is "custom"Maximum amount the buyer may enter, in USD cents.
Rules: Must be > min_selling_price_usd_cent.
Only applies when pricing_mode is "custom".
50000
custom_price_options_usd_centArray<int>NoPreset quick-select amounts shown to the buyer, in USD cents.
Rules: Maximum 5 entries. Each value must be > 0 and within [min_selling_price_usd_cent, max_selling_price_usd_cent].
Only applies when pricing_mode is "custom". When omitted, 5 evenly-spaced values between min and max are generated automatically.
[1000, 2500, 5000]

Request Body — flat pricing (default)

​{
"category": "Games",
"coverImageFileId": "f7574adb-0ccb-4281-9ed6-943f11a1e85a",
"names": {
"en": "PUBG 100 points",
"zh-TW": "PUBG 100 點",
},
"skuId": "pubg_point_100",
"originalPrice": 9.99,
"sellingPrice": 9,
"discountPercentage": 30,
"countryWhitelist": ["JP"],
"countryBlacklist": ["CN", "GB"],
"path": "/pages/index/index?foo=bar&baz=qux",
"description": "A virtual top-up item",
"stocks": 100,
"autoDelivery": true,
}

Request Body — tiered pricing

{
"category": "Shopping",
"coverImageFileId": "f7574adb-0ccb-4281-9ed6-943f11a1e85a",
"names": { "en": "JD.com CN Gift Card" },
"skuId": "jdcom-cn-giftcard",
"description": "JD.com gift card redeemable in China",
"countryWhitelist": ["CN"],
"path": "/pages/index/index",
"stocks": 500,
"autoDelivery": true,
"pricing_mode": "tiered",
"pricing_tiers": [
{
"tier_id": "tier_jdcn_30cny",
"names": { "en": "JD.com CN 30 CNY" },
"original_price_usd_cent": 590,
"selling_price_usd_cent": 472
},
{
"tier_id": "tier_jdcn_50cny",
"names": { "en": "JD.com CN 50 CNY" },
"original_price_usd_cent": 980,
"selling_price_usd_cent": 784
}
]
}

Request Body — custom pricing

{
"category": "Games",
"coverImageFileId": "f7574adb-0ccb-4281-9ed6-943f11a1e85a",
"names": { "en": "Custom Top-up" },
"skuId": "custom-topup",
"description": "Top up any amount between $10 and $500",
"countryWhitelist": ["JP"],
"path": "/pages/topup/index",
"pricing_mode": "custom",
"discountPercentage": 20,
"min_selling_price_usd_cent": 1000,
"max_selling_price_usd_cent": 50000,
"custom_price_options_usd_cent": [1000, 2500, 5000]
}

Response

HTTP 200

{
"code": "000000",
"message": null,
"data": {},
"success": true
}
ErrorCodeRemark
000000Success
900001Invalid Parameter
900002JWT Authentication Failed
900003Unexpected Error
900004Invalid FileId
900260Invalid SkuId

Pricing Tier Object

Each entry in pricing_tiers is a PricingTier object with the following fields. pricing_tiers is only used when pricing_mode is "tiered".

FieldTypeRequiredDescription
tier_idstringYesStable merchant-assigned identifier for this tier. Must be unique within the SKU. Max 255 characters.
names{[key:string]: string}YesLocale-keyed display name map. en is required.
descriptionstringNoOptional description for this tier.
original_price_usd_centintYesList price in USD cents. Must be ≥ selling_price_usd_cent.
selling_price_usd_centintYesActual selling price in USD cents. Must be > 0 and ≤ original_price_usd_cent.

Validation rules for pricing_tiers:

  • At least one tier is required when pricing_mode is "tiered".
  • Maximum 50 tiers per SKU.
  • tier_id must be unique within the request.
  • pricing_tiers must be absent or empty when pricing_mode is "flat" or "custom".

Valid Categories

Category
AI Tools
eSIM
Fashion & Beauty
Food & Grocery
Entertainment
Games
Shopping
Telecom & Utilities
Travel