Skip to main content

Tencent Palm Service-side API Documentation (v2.3.0)

This document applies to both the Max and Standard versions; the interface content is identical.

Version History

VersionRelease DateUpdate Description
v2.3.02026-07-13New APIs
• Added DescribeUserAccessScope (Query User Access Scope) and DescribeUserAccessScopeSummary (Query User Access Scope Summary) APIs
• Added DescribeUserTagTree (Query User Tag Tree Structure) API

APIs Opened Externally
• SendPalmMaSmsCode (Send SMS Verification Code) and LoginPalmMaSmsCode (SMS Verification Code Login) APIs are changed from internal to externally open; a new "PalmMa Login APIs" category is added
• CreateQrCodeScanSession (Create QR Code Palm Registration Session) and DescribeQrCodeScanSession (Query QR Code Palm Registration Session Status) APIs are changed from internal to externally open

API Parameter Changes
• The LoginPalmMaSmsCode API adds PhoneNo (phone number verification) and GrantType (grant type) parameters; SmsCode and SessionId are changed to optional
• The DescribeQrCodeScanSession API response adds the PhoneNo (phone number) field
• The DescribeQrCodeScanUser API response adds the PhoneNo (phone number) field
• The DescribeUserTag API response adds ParentTagId (parent tag ID), Level (level depth), ChildrenCount (number of direct child tags), UserCount (number of users associated with the tag), and PathNodes (hierarchical path) fields
• The DescribeUserTagList API response UserTagItem adds ParentTagId, Level, ChildrenCount, and PathNodes fields

New Enums and Data Structures
• Added GrantType enum (grant type: client_credential_user / client_credential)
• Added UserTagNode common data structure (tag hierarchical path node)
• Added UserTag common data structure (user tag information, including PathNodes hierarchical path)
• Added UserTagTreeNode common data structure (tag tree node)
• Added AccessScopeItem, AccessScopeSummary, and VerifyRuleInfo common data structures
• Added error code FailedOperation.PhoneNoAlreadyExists (1113, Phone number already exists)
• The DeviceStatus enum serialization is changed from string to integer (int32)
v2.2.02026-06-17Version upgrade only; no API changes.
v2.1.02026-05-07New APIs
• Added 6 list query APIs: DescribeUserList (Query User Information List), DescribeUserTagList (Query User Tag List), DescribeDeviceList (Query Device List), DescribeSceneList (Query Scene List), DescribeSceneGroupList (Query Scene Group List), DescribeVerifyRuleList (Query Verification Rule List)

API Parameter Changes
• The CreateUser and ModifyUser APIs add the CustomFieldValue parameter (custom additional verification field value)
• The DescribeUser API response adds the CustomFieldValue field
• The DescribeUserList API adds PhoneNo, PhysicalCardNo, and UserTagId filter parameters; the response adds CreatedTime and UpdatedTime fields
• The DescribeDeviceList API is opened externally; it adds Status, SceneId, and DeviceType filter parameters; the response adds Status, SceneId, SceneName, CreatedTime, and UpdatedTime fields
• The DescribeVerificationRecordList API adds SceneGroupIds, SceneGroupName, and OrderBy parameters; the response adds SceneGroupId and SceneGroupName fields
• The NotifyQrCodeScanEvent API adds the EventType parameter (QR code scan event type)
• The Verify API's VerifyResult parameter type is changed from Integer to the VerifyResult enum (values: 1: Success, 2: Failure); valid values are now explicit (semantics unchanged; historical callers passing 1/2 remain fully compatible)

New Enums and Data Structures
• Added DeviceStatus enum (device status: online / offline)
• Added AdditionalVerifyMethod enum (additional verification method: phone_no / custom_field / qr_code)
• Added VerificationRecordOrderField enum (verification record ordering field)
• Added SortOrder enum (sort direction: asc / desc)
• Added QrCodeScanEventType enum (QR code scan event type, used as the value of NotifyQrCodeScanEvent.EventType)
• Added VerifyResult enum (additional verification result, used as the value of the Verify API's VerifyResult parameter)
• Added OrderBy common data structure (sorting condition)
v2.0.02026-04-03• Added Palm Print management related APIs (8 APIs: CreatePalm, BindPalm, SearchMobilePalm, Verify, DeletePalm, DescribePalm, SynchronizePalmFeature, DescribeVersionList)
• Added authentication API DescribePalmLicense (Query License Information)
• The DescribeUser API output adds the UserState (user status) field
• The DescribeUserPalm API output adds UserName (user name), UserState (user status), PalmDirection (main palm direction), LeftPalm (left palm registration information), and RightPalm (right palm registration information) fields
• The DescribeQrCodeScanUser API output adds UserName (user name), UserState (user status), PalmDirection (main palm direction), LeftPalm (left palm registration information), and RightPalm (right palm registration information) fields
• The PalmState enum adds the abnormal enum value
• Added UserState enum type
• Added Image, Pointf, Feature, VerifyInfo, PalmFeatureDetail, and ProductVersionInfo common business data structures
• Added ImageType, PalmPaasPalmDirection, FeatureType, PalmStatus, PalmPaasOperation, HasMoreType, AlgorithmStrategy, and VerifyType enum types
v1.8.12026-03-05• The DescribeUser API output adds PalmDirection (palm direction), LeftPalm (left palm registration information), RightPalm (right palm registration information), and CreateTime (user creation time) fields
• Added PalmInfo common business data structure (single palm registration information)
v1.8.02026-02-02• Added DescribeScene (Query Scene Details) API under Scene Management
• Added DescribeDevice (Query Device Details) API under Device Management
• The CreateScene API adds SceneId (optional) and ScenarioStrategy (required) parameters
• The ModifyScene API adds the ScenarioStrategy (required) parameter
• Added ScenarioStrategy, RegisterType, and PalmDirection enum types
• Added 5 business error codes (InvalidUserId, RegisterTypeNotAllowed, and Member-related error codes)
v1.7.12026-01-20• The CreateVerifyRule API's EnableWebhookRule parameter is changed to optional; if not provided, the default is true.
v1.7.02026-01-05• Added user tag management (4 APIs: CreateUserTag, ModifyUserTag, DeleteUserTag, DescribeUserTag)
• User management APIs support tag binding and partial failure (CreateUser and ModifyUser support UserTagIdList and PartialFailure parameters)
• Added complete documentation for the partial failure mechanism
• Unified API naming (interface tables use Action names)
• Added 14 business error codes (user tag, pagination, session, tenant related)
• Optimized 4 error codes' format; removed 39 deprecated error codes

Introduction

Overview

Tencent Palm (PalmAI) leverages Tencent's years of in-depth accumulation in computer vision and biometric identification technology, and opens its three core capabilities of Palm Print registration, Palm Print recognition, and Palm Print verification to enterprises and developers through Tencent Cloud services. It is committed to helping customers quickly build safe, convenient, and efficient Palm Print recognition solutions.

The Tencent Palm APIs described in this document are all Tencent Cloud API 3.0 APIs. You can call the APIs to operate on the Tencent Palm service, such as user management, Palm Print registration and verification, device management, and scene configuration. For all APIs supported by Tencent Palm, see API Overview.

Glossary

Common terms used in the Tencent Palm APIs are listed in the following table:

TermDescription
AppIdThe unique application identifier. It is a unique identifier used by the Tencent Cloud backend to distinguish different Palm applications, and is automatically generated when a tenant is created in the Palm console. Data is not shared across different AppIds.
RGBColor image.
IRInfrared image.
Three pointsData output after image detection and alignment.
Feature valueData output after an image is fed into the recognition model.
Palm Print Search Hot LibraryA high-performance data structure loaded in GPU memory or RAM to improve retrieval and matching efficiency. Data in the system is divided into search hot library data stored in GPU memory or RAM, and general storage data (including regular databases, object storage, file storage, etc.).
Device typeThe model identifier of a palm verification device. Current values: M3, M3B, M4, O1, O2.
Module typeThe model identifier of the recognition module used by the palm verification device. Current values: A3, A3B.

API Overview

The Palm API follows the Tencent Cloud API 3.0 specification and provides management capabilities such as authentication, Palm Print management, users, user palms, devices, scenes, verification records, verification rules, and QR code Palm Registration.

Function Categories

  • Authentication APIs
  • User Management APIs
  • User Tag Management APIs
  • User Palm Management APIs
  • Device Management APIs
  • Scene Management APIs
  • Verification Record APIs
  • Verification Rule APIs
  • QR Code Palm Registration APIs
  • PalmMa Login APIs
  • Palm Print Management APIs (Palm Algorithm Platform)

Authentication APIs

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateAccessTokenObtain access credentials20
DescribePalmLicenseQuery authorization information20

User Management APIs

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateUserCreate user20
ModifyUserModify user20
DeleteUserDelete user20
DescribeUserQuery user20
DescribeUserListQuery user information list20
DescribeUserAccessScopeQuery user access scope20
DescribeUserAccessScopeSummaryQuery user access scope summary20

User Tag Management APIs

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateUserTagCreate user tag20
ModifyUserTagModify user tag20
DeleteUserTagDelete user tag20
DescribeUserTagQuery user tag20
DescribeUserTagListQuery user tag list20
DescribeUserTagTreeQuery user tag tree structure20

User Palm Management APIs

Interface nameInterface functionFrequency limit (times/second/AppId)
DeleteUserPalmDelete user palm information20
DescribeUserPalmQuery user palm information20

Device Management APIs

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateDeviceCreate device20
ModifyDeviceModify device20
DeleteDeviceDelete device20
DescribeDeviceQuery device details20
DescribeDeviceListQuery device list20

Scene Management APIs

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateSceneCreate scene20
ModifySceneModify scene20
DeleteSceneDelete scene20
DescribeSceneQuery scene details20
DescribeSceneListQuery scene list20
CreateSceneGroupCreate scene group20
ModifySceneGroupModify scene group20
DeleteSceneGroupDelete scene group20
DescribeSceneGroupListQuery scene group list20

Verification Record APIs

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateVerificationRecordCreate verification record20
DescribeVerificationRecordListQuery verification record list20
DescribeVerificationRecordQuery verification record (push only)20

Verification Rule APIs

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateVerifyRuleCreate verification rule20
ModifyVerifyRuleModify verification rule20
DeleteVerifyRuleDelete verification rule20
DescribeVerifyRuleQuery verification rule20
DescribeVerifyRuleListQuery verification rule list20
CheckAccessPermissionCheck access permission (callback only)20

QR Code Palm Registration APIs

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateQrCodeScanSessionCreate QR code palm registration session20
NotifyQrCodeScanEventUser QR code scan event notification20
BindQrCodeScanPalmQR code palm print binding20
DescribeQrCodeScanSessionQuery QR code palm registration session status20
DescribeQrCodeScanUserQuery QR code palm registration user information20

PalmMa Login APIs

Interface nameInterface functionFrequency limit (times/second/AppId)
SendPalmMaSmsCodeSend SMS verification code20
LoginPalmMaSmsCodeSMS verification code login20

Palm Print Management APIs (Palm Algorithm Platform)

Interface nameInterface functionFrequency limit (times/second/AppId)
CreatePalmCreate palm print20
BindPalmBind palm print20
SearchMobilePalmMobile palm registration search20
VerifyUser additional verification20
DeletePalmDelete palm print20
DescribePalmQuery palm print20
SynchronizePalmFeatureSynchronize palm print feature20
DescribeVersionListQuery product version list20

How to Call

Basic Call Flow

The following flowchart illustrates the basic steps for calling the Palm API:

Description of the two authentication methods:

Authentication methodApplicable scenariosRequest headers
Signature + TokenMost management APIs (user, device, scene, palm print, etc.)Authorization + X-Palm-Openapi-Token
Token onlyQR code palm registration APIs (NotifyQrCodeScanEvent, BindQrCodeScanPalm, DescribeQrCodeScanSession, DescribeQrCodeScanUser)X-Palm-Openapi-Token only; Authorization not required

Notes:

  1. Before calling any API, you must first obtain an AccessToken via CreateAccessToken (this API itself uses signature authentication).
  2. Signature-authenticated APIs carry both Authorization (signature) and X-Palm-Openapi-Token (Token) in the request headers.
  3. Token-only APIs only need to carry X-Palm-Openapi-Token; no signature computation is required.

Request Structure

The request structure of the Palm API is as follows:

1. Service Endpoint

The API supports nearby regional access. The following domain name is recommended:

  • Default access domain (recommended): open.intl.palm.tencent.com (example only; the actual access domain is subject to assignment, and private deployment scenarios are supported)
  • Region-specific access (extensible for multi-region deployments): for example, open.intl.palm.tencent.com (example only; the actual access domain is subject to assignment)

Note: The domain name is the access point of the API and does not represent the region where the product or API actually provides services. If there are multiple regional deployments in the future, they will be added to the documentation.

2. Communication Protocol

All Palm API interfaces communicate over HTTPS, providing a highly secure communication channel.

3. Request Method

  • The POST method is recommended.
  • Supported Content-Type:
    • application/json (recommended; the signature method v3/TC3-HMAC-SHA256 must be used)
  • When using signature method v3 with the POST method, request packets up to 10 MB are supported.

4. Character Encoding

All requests and responses use UTF-8 encoding.

Common Parameters

Common parameters are used to identify the user's identity, sign the request, and provide the request context. When using signature method v3 (TC3-HMAC-SHA256), all common parameters must be placed in the HTTP request headers.

Parameter NameTypeRequiredDescription
X-TC-ActionStringYesThe name of the API to operate. For example: CreateUser.
X-TC-TimestampIntegerYesThe current UNIX timestamp in seconds. For example: 1704067200. A difference of more than 5 minutes from the server time will cause a signature expiration error.
X-TC-VersionStringYesThe API version number, currently fixed at: 2025-07-15.
AuthorizationStringYesSignature information, in the format: TC3-HMAC-SHA256 Credential=AKIDxxx/Date/service/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx. See the Signature Method section for details.
X-TC-NonceStringYesA random string, generally used to prevent replay attacks. It is recommended to generate a new unique random string for each request.
Content-TypeStringYesThe request content type. application/json; charset=utf-8 is recommended.
HostStringYesThe service endpoint, fixed at open.intl.palm.tencent.com.
X-Palm-AppIdStringYesThe application ID, obtained when applying for security credentials.
Customers need to apply to Tencent for AppId, SecretId, and SecretKey.
Keep the above information safe and pass it in API requests as required by your business.
X-Palm-Openapi-TokenStringYesThe temporary security credential Token. Before calling a Tencent API, you must first obtain the access credential via the [Obtain Access Credentials] API (Action: CreateAccessToken). Note that the access credential is time-limited and must be reapplied for after it expires.

Request Header Example

POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: CreateUser
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

Signature Method

The Palm API uses the Tencent Cloud API 3.0 signature method v3 (TC3-HMAC-SHA256) for identity authentication.

Why Signing Is Required

  • Verify the identity of the requester to ensure that the request comes from a user holding a valid key.
  • Protect the data in transit and prevent the request from being tampered with.

Applying for Security Credentials

The security credential used in this document is a key, which includes a SecretId and a SecretKey.

  • SecretId: Used to identify the API caller, which can be simply likened to a username.
  • SecretKey: Used to verify the identity of the API caller, which can be simply likened to a password.

You must strictly safeguard your security credentials to avoid leakage; otherwise, your property security will be endangered. If a leak occurs, disable the security credential immediately.

The specific steps for applying for a security credential are as follows:

  1. Log in to the Tencent Cloud Palm Service Console.
  2. Go to the System Management | Tenant Management console page.
  3. On the Tenant Management page, select the current tenant and click [Details] to query a key pair.

Signature Process (v3)

The API currently supports only POST requests. For the POST method, only Content-Type: application/json is currently supported, and the request body content is data passed in JSON format.

The following uses binding a user's palm print as an example to introduce the signature computation process step by step.

Assume that the user's SecretId and SecretKey are AKID******************************** and ********************************, respectively.

The request is as follows:

curl -X POST https://open.intl.palm.tencent.com \
-H "Authorization: TC3-HMAC-SHA256 Credential=AKID********************************/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-palm-appid;x-tc-nonce;x-tc-timestamp, Signature=f4b012d34bd468efb5cb90cb6c326ed42ec0f7de22accb38350606d95fa6b5db" \
-H "Content-Type: application/json" \
-H "Host: open.intl.palm.tencent.com" \
-H "X-TC-Action: BindPalm" \
-H "X-TC-Timestamp: 1752587686" \
-H "X-TC-Version: 2025-07-15" \
-H "X-Palm-AppId: 223" \
-H "X-TC-Nonce: c68bf577-60f1-45d8-a9ef-7a0a8c59690f" \
-H "X-Palm-Openapi-Token: **************************************" \
-d '{"PalmId": "8db884f9-1fb8-44f5-bdaa-f98fdcb3cd47","UserId": "Alice","IsForce": true}'

The following explains the signature computation process in detail.

  1. Concatenate the canonical request string

Concatenate the canonical request string (CanonicalRequest) in the following pseudocode format:

CanonicalRequest =
HTTPRequestMethod + '\n' +
CanonicalURI + '\n' +
CanonicalQueryString + '\n' +
CanonicalHeaders + '\n' +
SignedHeaders + '\n' +
HashedRequestPayload
FieldDescription
HTTPRequestMethodThe HTTP request method (GET, POST). In this example, the value is POST.
CanonicalURIThe URI parameter, fixed as a forward slash (/) in API 3.0.
CanonicalQueryStringThe query string in the URL of the HTTP request. It is fixed as an empty string "" for POST requests, and for GET requests it is the string content after the question mark (?) in the URL, for example: Limit=10&Offset=0. Note: CanonicalQueryString needs to be URL-encoded per RFC3986, with the UTF-8 charset. It is recommended to use the standard library of your programming language. All special characters must be encoded, in uppercase form.
CanonicalHeadersThe header information involved in the signature, containing at least the host and content-type headers. Custom headers may also be added to the signature to increase the uniqueness and security of your requests. Concatenation rules: 1) Convert both the header key and value to lowercase and trim leading and trailing spaces, then concatenate in the format key:value\n; 2) For multiple headers, concatenate in ascending ASCII order of the header key (lowercase). The computed result in this example is: content-type:application/json\nhost:open.intl.palm.tencent.com\nx-palm-appid:223\nx-tc-nonce:c68bf577-60f1-45d8-a9ef-7a0a8c59690f\nx-tc-timestamp:1752587686\n.
Note: The content-type must match what is actually sent. Some programming language network libraries add a charset value automatically even if not specified; if the value used at signing differs from what is sent, the server will return a signature verification failure.
SignedHeadersThe header information involved in the signature, indicating which headers of this request participated in the signature, corresponding one-to-one with the headers contained in CanonicalHeaders. content-type and host are required headers. Concatenation rules: 1) Convert all header keys to lowercase; 2) Concatenate multiple header keys (lowercase) in ascending ASCII order, separated by semicolons (;). In this example: content-type;host;x-palm-appid;x-tc-nonce;x-tc-timestamp
HashedRequestPayloadThe hash value of the request body (Payload, i.e., the Body). The computation pseudocode is Lowercase(HexEncode(Hash.SHA256(RequestPayload))), i.e., perform a SHA256 hash on the HTTP request body, then hex-encode it, and finally convert the encoded string to lowercase. Note: For GET requests, RequestPayload is fixed as an empty string; for POST requests, RequestPayload is the request body Payload.

Based on the above rules, the canonical request string obtained in the example is as follows (for clarity, the \n line breaks are represented as actual line breaks):

POST
/

content-type:application/json
host:open.intl.palm.tencent.com
x-palm-appid:223
x-tc-nonce:c68bf577-60f1-45d8-a9ef-7a0a8c59690f
x-tc-timestamp:1752587686

content-type;host;x-palm-appid;x-tc-nonce;x-tc-timestamp
b199b12c8af15dd7543ede5b6343d1abedd85f166b99b8b4b06599f10822b3a2
  1. Concatenate the string to sign

Concatenate the string to sign in the following pseudocode format:

StringToSign =
Algorithm + "\n" +
RequestTimestamp + "\n" +
CredentialScope + "\n" +
HashedCanonicalRequest
FieldDescription
AlgorithmThe signature algorithm, currently fixed as TC3-HMAC-SHA256.
RequestTimestampThe request timestamp, i.e., the value of the common parameter X-TC-Timestamp in the request header, taken as the current UNIX timestamp accurate to the second. In this example, the value is 1752587686.
CredentialScopeThe credential scope, in the format Date/service/tc3_request, containing the date, the requested service, and the termination string (tc3_request). Date is the date in UTC standard time, and its value must be consistent with the UTC standard time date converted from the common parameter X-TC-Timestamp; service is the product name and must match the product domain being called, which is palm here. The computed result in this example is: 2025-07-15/palm/tc3_request.
HashedCanonicalRequestThe hash value of the canonical request string concatenated in the preceding step. The computation pseudocode is Lowercase(HexEncode(Hash.SHA256(CanonicalRequest))). The computed result in this example is 3044b1650deaa09d3d1e93d63c15fd76c7c764254b3a1cba9c6b321eda191774.

⚠️ Notes:

  1. Date must be computed from the timestamp X-TC-Timestamp, and the time zone must be UTC+0. If local system time zone information is included (for example, UTC+8), calls will succeed during the day and evening but will definitely fail in the early morning. Assume the timestamp is 1551113065; the time in UTC+8 is 2019-02-26 00:44:25, but the computed Date taking the UTC+0 date should be 2019-02-25, not 2019-02-26.
  2. Timestamp must be the current system time, and you must ensure the system time is synchronized with the standard time. If the difference exceeds five minutes, it will definitely fail. If the system time is not synchronized with the standard time for a long time, requests may fail after running for a while, returning a signature expiration error.

Based on the above rules, the string to sign obtained in the example is as follows:

TC3-HMAC-SHA256
1752587686
2025-07-15/palm/tc3_request
3044b1650deaa09d3d1e93d63c15fd76c7c764254b3a1cba9c6b321eda191774
  1. Compute the signature
  1. Compute the derived signing key, with the pseudocode as follows:
SecretKey = "********************************"
SecretDate = HMAC_SHA256("TC3" + SecretKey, Date)
SecretService = HMAC_SHA256(SecretDate, Service)
SecretSigning = HMAC_SHA256(SecretService, "tc3_request")

The derived keys SecretDate, SecretService, and SecretSigning are binary data that may contain non-printable characters. Their hex string representations for printing are, respectively:
2fbd1f93d8d1aae5c0a4e2df255519752e1e4be521b9edae832930379544679c,
45589385000e5972fe3fb6ca9f07339289dee6e33e0b5bb9022308d69eb15fc9,
a116ccc06739ebac6c1c54514ace4229c98847c5f1ee5abc395eafab262b0246.
Note that in different programming languages, the order of parameters in the HMAC library function may differ; use the actual situation as the standard. Here, the pseudocode key parameter comes first, and the message parameter comes after. Standard library functions usually provide return values in binary format, and may also provide print-friendly hex-format return values; the binary format is used here.

FieldDescription
SecretKeyThe original SecretKey, i.e., ********************************.
DateThe Date field information in the Credential. In this example, the value is 2025-07-15.
ServiceThe Service field information in the Credential. In this example, the value is palm.
  1. Compute the signature, with the pseudocode as follows:

    Signature = HexEncode(HMAC_SHA256(SecretSigning, StringToSign))

The computed result in this example is f4b012d34bd468efb5cb90cb6c326ed42ec0f7de22accb38350606d95fa6b5db.

  1. Concatenate Authorization

    Concatenate Authorization in the following format:

    Authorization =
    Algorithm + ' ' +
    'Credential=' + SecretId + '/' + CredentialScope + ', ' +
    'SignedHeaders=' + SignedHeaders + ', ' +
    'Signature=' + Signature
    FieldDescription
    AlgorithmThe signature method, fixed as TC3-HMAC-SHA256
    SecretIdThe SecretId in the key pair, i.e., AKID********************************
    CredentialScopeThe credential scope, as described above. In this example: 2025-07-15/palm/tc3_request
    SignedHeadersThe header information involved in the signature. In this example, the value is content-type;host;x-palm-appid;x-tc-nonce;x-tc-timestamp
    SignatureThe signature value. The computed result in this example is f4b012d34bd468efb5cb90cb6c326ed42ec0f7de22accb38350606d95fa6b5db

    Based on the above rules, the value obtained in the example is:

    Authorization: TC3-HMAC-SHA256 Credential=AKID********************************/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-palm-appid;x-tc-nonce;x-tc-timestamp, Signature=f4b012d34bd468efb5cb90cb6c326ed42ec0f7de22accb38350606d95fa6b5db

    The final complete call information is as follows:

    POST https://open.intl.palm.tencent.com/
    Authorization: TC3-HMAC-SHA256 Credential=AKID********************************/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-palm-appid;x-tc-nonce;x-tc-timestamp, Signature=f4b012d34bd468efb5cb90cb6c326ed42ec0f7de22accb38350606d95fa6b5db
    Content-Type: application/json
    Host: open.intl.palm.tencent.com
    X-Palm-AppId: 223
    X-TC-Action: BindPalm
    X-TC-Timestamp: 1752587686
    X-TC-Version: 2025-07-15
    X-TC-Nonce: c68bf577-60f1-45d8-a9ef-7a0a8c59690f
    X-Palm-Openapi-Token: **************************************
    {"PalmId": "8db884f9-1fb8-44f5-bdaa-f98fdcb3cd47","UserId": "Alice","IsForce": true}

    ⚠️ Note: The HTTP headers and request body (Payload) sent with the request must be exactly the same as the content used in the signature computation process; otherwise, a signature mismatch error will be returned. You can compare and troubleshoot by printing the actual request content, capturing network packets, etc.

Signature Demo (Python)

The following is the complete signature process demo code implemented in Python:


def get_openapi_request_header(secret_id, secret_key, access_token, appid, action, nonce, data, svr_version = "standard"):
version = "2025-07-15"
timestamp = int(time.time())
host = "open.intl.palm.tencent.com"
service = "palm"
algorithm = "TC3-HMAC-SHA256"
date = datetime.utcfromtimestamp(timestamp).strftime("%Y-%m-%d")

# ************* Step 1: Concatenate the canonical request string *************
http_request_method = "POST"
canonical_uri = "/"
canonical_querystring = ""
ct = "application/json"
payload = json.dumps(data) ##body
canonical_headers = "content-type:%s\nhost:%s\nx-palm-appid:%s\nx-tc-nonce:%s\nx-tc-timestamp:%s\n" % (ct, host, str(appid), nonce, str(timestamp))
signed_headers = "content-type;host;x-palm-appid;x-tc-nonce;x-tc-timestamp"
hashed_request_payload = hashlib.sha256(payload.encode("utf-8")).hexdigest()
canonical_request = (http_request_method + "\n" +
canonical_uri + "\n" +
canonical_querystring + "\n" +
canonical_headers + "\n" +
signed_headers + "\n" +
hashed_request_payload)

# ************* Step 2: Concatenate the string to sign *************
credential_scope = date + "/" + service + "/" + "tc3_request"
hashed_canonical_request = hashlib.sha256(canonical_request.encode("utf-8")).hexdigest()
string_to_sign = (algorithm + "\n" +
str(timestamp) + "\n" +
credential_scope + "\n" +
hashed_canonical_request)

# ************* Step 3: Compute the signature *************
# Signature digest function
def sign(key, msg):
return hmac.new(key, msg.encode("utf-8"), hashlib.sha256).digest()
secret_date = sign(("TC3" + secret_key).encode("utf-8"), date)
secret_service = sign(secret_date, service)
secret_signing = sign(secret_service, "tc3_request")
signature = hmac.new(secret_signing, string_to_sign.encode("utf-8"), hashlib.sha256).hexdigest()

# ************* Step 4: Concatenate Authorization *************
authorization = (algorithm + " " +
"Credential=" + secret_id + "/" + credential_scope + ", " +
"SignedHeaders=" + signed_headers + ", " +
"Signature=" + signature)
print("authorization: {}".format(authorization))

# Add common parameters to the request headers
headers = {
"Authorization": authorization,
"Host": host,
"Content-Type": "application/json",
"X-Palm-AppId": str(appid),
"X-TC-Action": action,
"X-TC-Timestamp": str(timestamp),
"X-TC-Version": version,
"X-TC-Nonce": nonce,
"X-Palm-Openapi-Token": access_token
}
return headers

Common Signature Failure Error Codes

Error CodeError Description
AuthFailure.SignatureExpireThe signature has expired. The difference between the Timestamp and the time the server received the request must not exceed five minutes.
AuthFailure.SecretIdNotFoundThe key does not exist. Check in the console whether the key is disabled, and whether characters were missing or extra when copying.
AuthFailure.SignatureFailureSignature error. This may be caused by a signature computation error, a mismatch between the signature and the content actually sent, or an incorrect SecretKey.
AuthFailure.TokenFailureTemporary certificate Token error.
AuthFailure.InvalidSecretIdThe key is invalid (not a Cloud API key type).

Return Result

Cloud API 3.0 interfaces return JSON data by default; interfaces that return a non-JSON format will be described in the documentation. The maximum limit for returned JSON data is 50 MB. If the returned data exceeds the maximum limit, the request will fail and return an internal error. It is recommended to control the size of the returned data using the filtering or pagination features in the API documentation.

Note: As long as the request is processed normally by the server, the HTTP status code of the response is 200. For example, for errors such as signature failure, the HTTP status code is also 200, and the specific error information is reflected in the response body.

Successful Response

Taking the user query API as an example, a successful call returns the following:

{
"Response": {
"UserId": "user123456",
"UserName": "John Doe",
"PhoneNo": "(+86)13800138000",
"PhysicalCardNo": "CARD001",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
  • Response and its internal RequestId are fixed fields that are returned regardless of whether the request succeeds.
  • RequestId is used to uniquely identify an API request, facilitating troubleshooting.
  • The remaining fields are business fields defined by the specific API.

Error Response

A failed call returns the following:

{
"Response": {
"Error": {
"Code": "AuthFailure.SignatureFailure",
"Message": "The provided credentials could not be validated. Please check your signature is correct."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
  • The presence of the Error field indicates that the request failed. It contains Code (error code) and Message (error message).
  • RequestId is still returned for troubleshooting.
  • For error codes, refer to the "Common Error Codes" section of the API documentation.

Common Error Codes

If the Error field exists in the return result, it indicates that the API call failed. The Error.Code field is the error code, and error codes that may occur for all businesses are common error codes. For the complete list of error codes, refer to the "Error Codes" page under the "API Documentation" directory of this product.

Parameter Types

The Palm API 3.0 input and output parameters support the following data types:

TypeDescriptionExample
StringString"user123456"
IntegerInteger, with an upper limit of an unsigned 64-bit integer. In different languages, it is recommended to use the largest integer type for definition.123456
BooleanBoolean, true/falsetrue
FloatFloating-point number3.14
DoubleDouble-precision floating-point number3.1415926535
DateString, in date format"2022-01-01"
TimestampString, in time format"2022-01-01 00:00:00"
Timestamp RFC3339String, in time format, RFC3339 standard time format; it is recommended to parse it with a standard library"2022-01-01T00:00:20.021Z"
BinaryBinary content, which must be requested and parsed with a specific protocol-

Partial Failure

Partial Failure is a special handling mechanism that allows successful operations to still be executed even if some operations fail in a batch operation. This mechanism can improve the fault tolerance and efficiency of batch operations.

What Is Partial Failure

In batch operations (such as batch binding of user tags), if the partial failure mechanism is not used:

  • If any operation fails, the entire request fails.
  • All operations are rolled back, even if most of them are valid.

After the partial failure mechanism is enabled:

  • Valid operations are executed successfully.
  • Failed operations return detailed error information in the response.
  • You can retry the failed operations based on the returned error information.

How to Use Partial Failure

APIs that support partial failure provide the PartialFailure parameter:

Request parameter:

Parameter NameRequiredTypeDescription
PartialFailureNoBooleanWhether to allow partial failure. When set to true, the partial failure mechanism is enabled. The default is false.

Response field:

When partial failure is enabled and there are failed items, the response contains the PartialFailureError field, which describes the reason for the failure in detail:

Parameter NameTypeDescription
PartialFailureErrorObjectPartial failure error information, containing the details of the failed items.

Example Scenarios

Scenario 1: Create a user and batch-bind tags

Request example:

{
"UserId": "user001",
"UserName": "John Doe",
"UserTagIdList": ["tag001", "tag002", "tag003"],
"PartialFailure": true
}

Successful response (no failed items):

{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Partial failure response (with failed items):

{
"Response": {
"PartialFailureError": {
"NotExistUserTagIdList": ["tag003"]
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

In the above example:

  • User user001 is created successfully.
  • tag001 and tag002 are bound successfully.
  • tag003 does not exist, so binding fails.

Retry note: If you need to retry, after fixing tag003 you must pass the complete tag list ["tag001", "tag002", "tag003"], rather than only ["tag003"], because user tag binding is an overwrite operation.

Best Practices

  1. Enable partial failure for batch operations

    • In batch creation, modification, and other operations, it is recommended to set PartialFailure=true.
    • This ensures that valid data is processed and invalid data is recorded.
  2. Check the PartialFailureError field in the response

    • Even for a correct return result, check the PartialFailureError field.
    • The presence of PartialFailureError indicates that some operations failed and need to be handled based on the returned information.
  3. Record and retry failed items

    • Record the failed item information returned in PartialFailureError.
    • After fixing the cause of failure, re-initiate the request.
    • Note: For overwrite operations such as batch binding of user tags, when retrying you must pass the complete tag list (including previously successful items), rather than only retrying the failed items.
  4. Idempotency design

    • Ensure that operations are idempotent so that failed operations can be safely retried.
    • Batch binding operations must be retried with complete data (overwrite update).

APIs That Support Partial Failure

The following APIs support the partial failure mechanism:

  • Create User: Supports partial failure when batch-binding user tags.
  • Modify User: Supports partial failure when batch-binding user tags.

Note: Not all APIs support the partial failure mechanism. For the specific support, refer to the parameter description of each API.


Authentication APIs

Obtain Access Credentials

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to obtain an access credential (AccessToken). The following call method is limited to scenarios where a regular server calls the open APIs of the Palm Application Platform.

Note: This API only requires a signature (Authorization) and does not need to carry X-Palm-Openapi-Token. Before accessing the Palm Application Platform service, customers need to apply to Tencent for AppId, SecretId, and SecretKey. Keep the above information safe and pass it in API requests as required by your business.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: CreateAccessToken.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
AppIdYesIntegerThe product ID assigned by the system.
SecretIdYesStringThe customer's key ID.
SecretKeyHashYesStringThe hash of the customer's key. The computation rule is: hex.EncodeToString(sha256.Sum256(secretKey)).
GrantTypeYesStringGrant type.
When calling the open APIs of the Palm Application Platform, you must use client_credential.

Value enum:
- client_credential_user: Applicable to scenarios where a third-party platform integrates the Mobile Palm Registration SDK, that is:
a. The mobile side uses the SDK to initiate registration or to obtain the liveness video upload address;
b. The third-party server needs to apply for an access credential for a specified user, to be used by the SDK;
c. In this case, the UserId field must be passed as well.

- client_credential: Applicable to scenarios where a regular server calls the open APIs, that is:
a. This type is not bound to a specific user and only uses the application-level key to obtain the access credential;
b. The UserId field does not need to be passed.
UserIdNoStringThe user's identity ID. When grant_type is "client_credential_user", the UserId field must be passed.

3. Output Parameters

Parameter NameTypeDescription
AccessTokenStringThe access credential. You can subsequently access other APIs based on this credential.
ExpiresInIntegerThe validity period of the AccessToken, in seconds. The token is invalid after it expires.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: CreateAccessToken
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"AppId": 223,
"SecretId": "this is secretId",
"SecretKeyHash": "this is secretKey hash",
"GrantType": "client_credential"
}
Output Example
{
"Response": {
"AccessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"ExpiresIn": 7200,
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Authorization Information

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Query server-side authorization information, including the palm database capacity limit, the current usage, and the License expiration time.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribePalmLicense.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
AppIdYesIntegerThe product ID assigned by the system.

3. Output Parameters

Parameter NameTypeDescription
PalmCapacityIntegerThe palm database capacity limit, indicating the maximum number of palm prints allowed to be registered under the current authorization.
PalmUsageIntegerThe current palm database usage, indicating the number of registered palm prints.
ExpireTimeIntegerThe License expiration time, a UTC timestamp in seconds. The service cannot be used after it expires.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribePalmLicense
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"AppId": 223
}
Output Example
{
"Response": {
"PalmCapacity": 100000,
"PalmUsage": 5000,
"ExpireTime": 1756108800,
"RequestId": "e3b0c442-98fc-1c14-b39f-f75b262b1d0e"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

User Management APIs

Create User

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to create a new user, supporting the setting of the user's basic information.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: CreateUser.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserIdYesStringThe unique user identifier.
UserNameYesStringThe user name.
PhoneNoNoStringThe phone number (with area code), such as "(+86)13530612342". If the area code is not provided, "(+86)" is used by default.
PhysicalCardNoNoStringThe physical card number, a combination of digits and letters.
UserTagIdListNoArray of StringThe list of user tag IDs.
PartialFailureNoBooleanWhether to allow partial failure.
CustomFieldValueNoStringThe custom additional verification field value (digits only). It is recommended to fill it in when the tenant enables the custom_field additional verification method.

3. Output Parameters

Parameter NameTypeDescription
PartialFailureErrorCreateUserResponsePartialFailureErrorThe partial failure result. See the CreateUserResponsePartialFailureError structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: CreateUser
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserId": "user123456",
"UserName": "John Doe",
"PhoneNo": "(+86)13530612342",
"PhysicalCardNo": "CARD001",
"UserTagIdList": ["tag001", "tag002"],
"PartialFailure": true
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Partial Failure Output Example
{
"Response": {
"PartialFailureError": {
"NotExistUserTagIdList": [
"tag003"
]
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.UserNameEmpty",
"Message": "The user name is empty"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Modify User

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to modify user information, supporting the update of the user's basic information.

Note: This API performs a full update and requires passing all field information of the user. Optional fields that are not passed will be cleared. It is recommended to first call DescribeUser to obtain the current user information before modifying.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: ModifyUser.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserIdYesStringThe unique user identifier.
UserNameYesStringThe user name.
PhoneNoNoStringThe phone number (with area code), such as "(+86)13530612342". If the area code is not provided, "(+86)" is used by default.
PhysicalCardNoNoStringThe physical card number, a combination of digits and letters.
UserTagIdListNoArray of StringThe list of user tag IDs.
PartialFailureNoBooleanWhether to allow partial failure.
CustomFieldValueNoStringThe custom additional verification field value (digits only). It is recommended to fill it in when the tenant enables the custom_field additional verification method.

3. Output Parameters

Parameter NameTypeDescription
PartialFailureErrorModifyUserResponsePartialFailureErrorThe partial failure result. See the ModifyUserResponsePartialFailureError structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: ModifyUser
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserId": "user001",
"UserName": "John Doe",
"PhoneNo": "(+86)13800138000",
"UserTagIdList": ["tag001", "tag002"],
"PartialFailure": true,
"CustomFieldValue": "123456"
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Partial Failure Output Example
{
"Response": {
"PartialFailureError": {
"NotExistUserTagIdList": [
"tag003"
]
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.UserNotExist",
"Message": "The user does not exist or has been deleted."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Delete User

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to delete a specified user. After deletion, the user data cannot be recovered.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DeleteUser.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserIdYesStringThe unique user identifier.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DeleteUser
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserId": "user001"
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.UserNotExist",
"Message": "The user does not exist or has been deleted."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query the detailed information of a specified user, including basic information and palm registration status.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeUser.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserIdYesStringThe unique user identifier.

3. Output Parameters

Parameter NameTypeDescription
UserIdStringThe unique user identifier.
UserNameStringThe user name.
PhoneNoStringThe phone number (with area code), such as "(+86)13530612342". If the area code is not provided, "(+86)" is used by default.
PhysicalCardNoStringThe physical card number, a combination of digits and letters.
UserTagListArray of DescribeUserResponseUserTagThe user tag list. See the DescribeUserResponseUserTag structure.
PalmDirectionPalmDirectionThe palm direction. See the PalmDirection enum.
LeftPalmPalmInfoThe left palm registration information. See the PalmInfo structure.
RightPalmPalmInfoThe right palm registration information. See the PalmInfo structure.
CreateTimeTimestampThe user creation time, in RFC3339 string format, such as "2025-07-03T09:30:15.500Z".
UserStateUserStateThe user status. See the UserState enum.
CustomFieldValueStringThe custom additional verification field value. Empty when not set.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeUser
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserId": "user001"
}
Output Example
{
"Response": {
"UserId": "user001",
"UserName": "John Doe",
"PhoneNo": "(+86)13800138000",
"PhysicalCardNo": "CARD2024A001",
"UserTagList": [
{
"UserTagId": "tag001",
"UserTagName": "R&D Center"
},
{
"UserTagId": "tag002",
"UserTagName": "Product Center"
}
],
"PalmDirection": "right",
"RightPalm": {
"PalmState": "registered",
"RegisterType": "device",
"PreRegisterTime": "2025-06-01T10:00:00.000Z",
"RegisterTime": "2025-06-01T10:05:00.000Z",
"ExpireTime": "2026-06-01T10:05:00.000Z"
},
"CreateTime": "2025-05-20T08:30:00.000Z",
"UserState": "right_valid",
"CustomFieldValue": "123456",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.UserNotExist",
"Message": "The user information was not found."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User Information List

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query the user information list, supporting multi-condition filtering and pagination.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeUserList.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserIdNoStringThe unique user identifier. Supports fuzzy query.
UserNameNoStringThe user name. Supports fuzzy query.
PhoneNoNoStringThe phone number. Exact match.
PhysicalCardNoNoStringThe physical card number. Exact match.
PalmStateNoPalmStateThe main palm registration status.
UserStateNoUserStateThe user status.
UserTagIdNoStringThe user tag ID. Filters users that have the specified tag.
OffsetNoIntegerThe offset. The default is 0.
LimitNoIntegerThe number of records to return. The default is 20, and the maximum is 100.

3. Output Parameters

Parameter NameTypeDescription
TotalCountIntegerThe number of users that meet the conditions.
UserListArray of DescribeUserListResponseUserThe user list. See the DescribeUserListResponseUser structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeUserList
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserName": "John",
"PalmState": "registered",
"Offset": 0,
"Limit": 10
}
Output Example
{
"Response": {
"TotalCount": 1,
"UserList": [
{
"UserId": "user001",
"UserName": "John Doe",
"PhoneNo": "(+86)13800138000",
"PhysicalCardNo": "CARD001",
"UserTagList": [{"UserTagId": "tag001", "UserTagName": "R&D Center"}],
"RegisterType": "device",
"PalmState": "registered",
"PalmDirection": "right",
"PalmRegisterTime": "2025-06-01T10:05:00.000Z",
"PalmExpireTime": "2026-06-01T10:05:00.000Z",
"UserState": "right_valid",
"CreatedTime": "2025-05-20T08:30:00.000Z",
"UpdatedTime": "2025-06-01T10:05:00.000Z"
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User Access Scope

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Query the detailed information of the scenes, devices, access time periods, etc. that the user can access, based on the user ID.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeUserAccessScope.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserIdYesStringThe unique user identifier.
OffsetNoIntegerThe offset. The default is 0.
LimitNoIntegerThe number of records to return. The default is 20, and the maximum is 100.

3. Output Parameters

Parameter NameTypeDescription
TotalCountIntegerThe total number of scenes that meet the conditions.
AccessScopeListArray of AccessScopeItemThe access scope list (aggregated by scene dimension). See the AccessScopeItem structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeUserAccessScope
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserId": "user001",
"Offset": 0,
"Limit": 20
}
Output Example
{
"Response": {
"TotalCount": 1,
"AccessScopeList": [
{
"SceneId": "scene001",
"SceneName": "Main Gate",
"SceneGroupId": "group001",
"SceneGroupName": "Headquarters Campus",
"DeviceSn": "DEV001",
"DeviceName": "Front Desk Device",
"VerifyRules": [
{"VerifyRuleId": "rule001", "VerifyRuleName": "Weekday Rule"}
]
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User Access Scope Summary

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Count the number of scene groups, scenes, and devices that the user can access, based on the user ID.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeUserAccessScopeSummary.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserIdYesStringThe unique user identifier.

3. Output Parameters

Parameter NameTypeDescription
SummaryAccessScopeSummaryThe access scope summary. See the AccessScopeSummary structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeUserAccessScopeSummary
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserId": "user001"
}
Output Example
{
"Response": {
"Summary": {
"SceneGroupCount": 3,
"SceneCount": 8,
"DeviceCount": 15
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

User Tag Management APIs

Create User Tag

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to create a new user tag.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: CreateUserTag.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserTagNameYesStringThe user tag name.

3. Output Parameters

Parameter NameTypeDescription
UserTagIdStringThe unique user tag identifier.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: CreateUserTag
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserTagName": "R&D Center"
}
Output Example
{
"Response": {
"UserTagId": "tag001",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.UserTagNameEmpty",
"Message": "The user tag name is empty"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Modify User Tag

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to modify user tag information.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: ModifyUserTag.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserTagIdYesStringThe unique user tag identifier.
UserTagNameYesStringThe user tag name.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: ModifyUserTag
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserTagId": "tag001",
"UserTagName": "Product Center"
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.UserTagNotExist",
"Message": "The user tag does not exist or has been deleted."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Delete User Tag

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to delete a specified user tag. After deletion, the user tag data cannot be recovered.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DeleteUserTag.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserTagIdYesStringThe unique user tag identifier.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DeleteUserTag
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserTagId": "tag001"
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.UserTagNotExist",
"Message": "The user tag does not exist or has been deleted."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User Tag

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query the detailed information of a specified user tag.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeUserTag.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserTagIdYesStringThe unique user tag identifier.

3. Output Parameters

Parameter NameTypeDescription
UserTagIdStringThe unique user tag identifier.
UserTagNameStringThe user tag name.
ParentTagIdStringThe parent tag ID. Empty indicates a top-level tag.
LevelIntegerThe level depth: 0=L1 (top level), 1=L2 (level 2), 2=L3 (level 3).
ChildrenCountIntegerThe number of direct child tags.
UserCountIntegerThe number of users associated with the tag.
PathNodesArray of UserTagNodeThe complete hierarchical path from the root tag to the current tag, returned in parent-to-child order. See the UserTagNode structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeUserTag
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserTagId": "tag001"
}
Output Example
{
"Response": {
"UserTagId": "tag001",
"UserTagName": "R&D Center",
"ParentTagId": "",
"Level": 0,
"ChildrenCount": 3,
"UserCount": 50,
"PathNodes": [
{
"UserTagId": "tag001",
"UserTagName": "R&D Center",
"Level": 0
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.UserTagNotExist",
"Message": "The user tag information was not found."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User Tag List

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query the user tag list, supporting fuzzy search and pagination.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeUserTagList.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserTagNameNoStringThe tag name. Supports fuzzy search.
OffsetNoIntegerThe offset. The default is 0.
LimitNoIntegerThe number of records to return. The default is 20, and the maximum is 100.

3. Output Parameters

Parameter NameTypeDescription
TotalCountIntegerThe total number of tags that meet the conditions.
UserTagListArray of DescribeUserTagListResponseUserTagItemThe tag information list. See the DescribeUserTagListResponseUserTagItem structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeUserTagList
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserTagName": "R&D",
"Offset": 0,
"Limit": 20
}
Output Example
{
"Response": {
"TotalCount": 1,
"UserTagList": [
{
"UserTagId": "tag001",
"UserTagName": "R&D Center",
"UserCount": 50,
"ParentTagId": "",
"Level": 0,
"ChildrenCount": 3,
"PathNodes": [
{
"UserTagId": "tag001",
"UserTagName": "R&D Center",
"Level": 0
}
],
"CreatedTime": "2025-05-01T10:00:00.000Z",
"UpdatedTime": "2025-06-01T10:00:00.000Z"
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User Tag Tree Structure

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Query the user tag tree structure, returning the tag hierarchy.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeUserTagTree.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
RootTagIdNoStringThe root tag ID. Empty indicates that the complete tree is returned.

3. Output Parameters

Parameter NameTypeDescription
TreeArray of UserTagTreeNodeThe tag tree node list. See the UserTagTreeNode structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeUserTagTree
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"RootTagId": ""
}
Output Example
{
"Response": {
"Tree": [
{
"UserTagId": "tag001",
"UserTagName": "R&D Department",
"UserCount": 50,
"Level": 0,
"ParentTagId": "",
"Children": [
{
"UserTagId": "tag002",
"UserTagName": "Frontend Team",
"UserCount": 20,
"Level": 1,
"ParentTagId": "tag001",
"Children": []
}
]
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

User Palm Management APIs

Delete User Palm Information

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to delete the palm information of a specified user. After deletion, palm registration is required again.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DeleteUserPalm.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserIdYesStringThe unique user identifier.
PalmDirectionListNoArray of PalmDirectionThe palm direction list. If not passed, both palms are deleted.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DeleteUserPalm
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserId": "user001",
"PalmDirectionList": ["left", "right"]
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.UserNotExist",
"Message": "The user palm information does not exist or has been deleted."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User Palm Information

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query the palm print information and palm registration status of a specified user.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeUserPalm.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserIdYesStringThe unique user identifier.

3. Output Parameters

Parameter NameTypeDescription
UserIdStringThe unique user identifier.
PalmStatePalmStateThe main palm registration status.
UserNameStringThe user name.
UserStateUserStateThe user status. See the UserState enum.
PalmDirectionPalmDirectionThe main palm direction. See the PalmDirection enum.
LeftPalmPalmInfoThe left palm registration information. See the PalmInfo structure.
RightPalmPalmInfoThe right palm registration information. See the PalmInfo structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeUserPalm
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserId": "user001"
}
Output Example
{
"Response": {
"UserId": "user001",
"PalmState": "registered",
"UserName": "John Doe",
"UserState": "right_valid",
"PalmDirection": "right",
"RightPalm": {
"PalmState": "registered",
"RegisterType": "device",
"PreRegisterTime": "2025-06-01T10:00:00.000Z",
"RegisterTime": "2025-06-01T10:05:00.000Z",
"ExpireTime": "2026-06-01T10:05:00.000Z"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.UserNotExist",
"Message": "The user palm information was not found."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Device Management APIs

Create Device

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to create a new device, supporting the setting of the device's basic information.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: CreateDevice.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
DeviceSnYesStringThe device serial number.
DeviceNameYesStringThe device name.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: CreateDevice
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"DeviceSn": "device001",
"DeviceName": "Shenzhen Nanshan Access Control No.1"
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.DeviceSnEmpty",
"Message": "The device SN is empty"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Modify Device

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to modify device information, supporting the update of the device's basic information.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: ModifyDevice.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
DeviceSnYesStringThe device serial number.
DeviceNameYesStringThe device name.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: ModifyDevice
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"DeviceSn": "device001",
"DeviceName": "Shenzhen Nanshan Access Control No.1 (Updated)"
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.DeviceNotExist",
"Message": "The device does not exist or has been deleted."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Delete Device

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to delete a specified device. After deletion, the device data cannot be recovered.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DeleteDevice.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
DeviceSnYesStringThe device serial number.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DeleteDevice
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"DeviceSn": "device001"
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.DeviceNotExist",
"Message": "The device does not exist or has been deleted."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Device Details

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query the detailed information of a specified device.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeDevice.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
DeviceSnYesStringThe device serial number.

3. Output Parameters

Parameter NameTypeDescription
DeviceSnStringThe device SN.
DeviceNameStringThe associated device name.
DeviceTypeStringThe device type.
ModuleTypeStringThe module type.
ModuleExpireTimeTimestampThe module validity period, in RFC3339 string format, such as "2025-07-03T09:30:15.500Z".
AppVersionStringThe application version.
ModuleVersionStringThe module version.
SystemVersionStringThe system version.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeDevice
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"DeviceSn": "device001"
}
Output Example
{
"Response": {
"DeviceSn": "device001",
"DeviceName": "Shenzhen Nanshan Access Control Device",
"DeviceType": "M4",
"ModuleType": "A3",
"ModuleExpireTime": "2027-07-03T09:30:15.500Z",
"AppVersion": "1.0.0",
"ModuleVersion": "2.0.0",
"SystemVersion": "3.0.0",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.DeviceNotExist",
"Message": "The device does not exist or has been deleted."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Device List

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query the device list, supporting multi-condition filtering and pagination.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeDeviceList.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
DeviceSnNoStringThe device serial number. Exact match.
DeviceNameNoStringThe device name. Supports fuzzy search.
StatusNoDeviceStatusThe device status filter.
SceneIdNoStringThe scene ID. Filters devices bound to the specified scene.
DeviceTypeNoStringThe device type. For values, see the Glossary.
OffsetNoIntegerThe offset. The default is 0.
LimitNoIntegerThe number of records to return. The default is 20, and the maximum is 100.

3. Output Parameters

Parameter NameTypeDescription
TotalCountIntegerThe total number of devices that meet the conditions.
DeviceListArray of DescribeDeviceListResponseDeviceThe device list. See the DescribeDeviceListResponseDevice structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeDeviceList
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"DeviceName": "Access Control",
"Status": "online",
"Offset": 0,
"Limit": 10
}
Output Example
{
"Response": {
"TotalCount": 1,
"DeviceList": [
{
"DeviceSn": "SN001",
"DeviceType": "M4",
"DeviceName": "Shenzhen Nanshan Access Control Device",
"HeartbeatTime": "2025-07-15T09:30:00.000Z",
"SystemVersion": "1.0.0",
"AppVersion": "2.0.0",
"ModuleType": "A3",
"ModuleVersion": "3.0.0",
"ModuleExpireTime": "2026-07-15T09:30:00.000Z",
"Status": "online",
"SceneId": "scene001",
"SceneName": "Shenzhen Nanshan Access Control No.1",
"CreatedTime": "2025-01-01T00:00:00.000Z",
"UpdatedTime": "2025-07-15T09:30:00.000Z"
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Scene Management APIs

Create Scene

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to create a new scene, supporting the setting of the scene's basic information, binding devices, and verification rules.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: CreateScene.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
SceneNameYesStringThe scene name.
SceneGroupIdYesStringThe scene group ID.
DeviceSnNoStringThe device serial number.
VerifyRuleIdListNoArray of StringThe list of verification rule IDs.
SceneIdNoStringThe scene ID (optional; auto-generated if not passed).
ScenarioStrategyYesScenarioStrategyThe scene strategy. See the ScenarioStrategy enum.

3. Output Parameters

Parameter NameTypeDescription
SceneIdStringThe unique scene identifier.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: CreateScene
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"SceneName": "Shenzhen Nanshan Access Control No.1",
"SceneGroupId": "scenegroup001",
"DeviceSn": "device001",
"VerifyRuleIdList": ["verifyrule001", "verifyrule002"],
"ScenarioStrategy": "AccessOnDeviceRecognition50k"
}
Output Example
{
"Response": {
"SceneId": "scene001",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.SceneNameEmpty",
"Message": "The scene name cannot be empty."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Modify Scene

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to modify scene information, supporting the update of the scene's basic information, binding devices, and verification rules.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: ModifyScene.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
SceneIdYesStringThe scene ID.
SceneNameYesStringThe scene name.
DeviceSnNoStringThe device serial number.
VerifyRuleIdListNoArray of StringThe list of verification rule IDs.
ScenarioStrategyYesScenarioStrategyThe scene strategy. See the ScenarioStrategy enum.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: ModifyScene
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"SceneId": "scene001",
"SceneName": "Shenzhen Nanshan Access Control No.1 (Updated)",
"DeviceSn": "device002",
"VerifyRuleIdList": ["verifyrule001"],
"ScenarioStrategy": "AccessOnDeviceRecognition50k"
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.SceneNotExist",
"Message": "The scene does not exist or has been deleted."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Delete Scene

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to delete a specified scene. After deletion, the scene data cannot be recovered.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DeleteScene.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
SceneIdYesStringThe scene ID.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DeleteScene
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"SceneId": "scene001"
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.SceneNotExist",
"Message": "The scene does not exist or has been deleted."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Scene Details

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query the detailed information of a specified scene.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeScene.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
SceneIdYesStringThe scene ID.

3. Output Parameters

Parameter NameTypeDescription
SceneIdStringThe scene ID.
SceneNameStringThe scene name.
SceneGroupIdStringThe scene group ID.
SceneGroupNameStringThe scene group name.
DeviceSnStringThe associated device SN.
DeviceNameStringThe associated device name.
ScenarioStrategyScenarioStrategyThe scene strategy. See the ScenarioStrategy enum.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeScene
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"SceneId": "scene001"
}
Output Example
{
"Response": {
"SceneId": "scene001",
"SceneName": "Shenzhen Nanshan Access Control No.1",
"SceneGroupId": "scenegroup001",
"SceneGroupName": "Shenzhen Nanshan Area",
"DeviceSn": "device001",
"DeviceName": "Shenzhen Nanshan Access Control Device",
"ScenarioStrategy": "AccessOnDeviceRecognition50k",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.SceneNotExist",
"Message": "The scene does not exist or has been deleted."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Create Scene Group

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to create a new scene group, supporting the setting of the scene group's basic information and the parent scene group.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: CreateSceneGroup.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
SceneGroupNameYesStringThe scene group name.
ParentSceneGroupIdYesStringThe parent scene group ID.

3. Output Parameters

Parameter NameTypeDescription
SceneGroupIdStringThe unique scene group identifier.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: CreateSceneGroup
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"SceneGroupName": "Shenzhen Nanshan Area",
"ParentSceneGroupId": "scene_group_root"
}
Output Example
{
"Response": {
"SceneGroupId": "scenegroup001",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.SceneGroupNameEmpty",
"Message": "The scene group name cannot be empty."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Modify Scene Group

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to modify scene group information, supporting the update of the scene group's basic information.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: ModifySceneGroup.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
SceneGroupIdYesStringThe scene group ID.
SceneGroupNameYesStringThe scene group name.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: ModifySceneGroup
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"SceneGroupId": "scenegroup001",
"SceneGroupName": "Shenzhen Nanshan Area (Updated)"
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.SceneGroupNotExist",
"Message": "The scene group does not exist or has been deleted."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Delete Scene Group

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to delete a specified scene group. After deletion, the scene group data cannot be recovered.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DeleteSceneGroup.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
SceneGroupIdYesStringThe scene group ID.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DeleteSceneGroup
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"SceneGroupId": "scenegroup001"
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.SceneGroupNotExist",
"Message": "The scene group does not exist or has been deleted."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Scene List

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query the scene list, supporting multi-condition filtering and pagination.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeSceneList.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
SceneIdListNoArray of StringThe list of scene IDs. Exact match. Supports batch query.
SceneNameNoStringThe scene name. Supports fuzzy search.
SceneGroupIdNoStringThe scene group ID. Filters scenes belonging to the specified scene group.
DeviceSnNoStringThe device serial number. Exact match.
VerifyRuleIdNoStringThe verification rule ID. Filters scenes bound to the specified rule.
OffsetNoIntegerThe offset. The default is 0.
LimitNoIntegerThe number of records to return. The default is 20, and the maximum is 100.

3. Output Parameters

Parameter NameTypeDescription
TotalCountIntegerThe total number of scenes that meet the conditions.
SceneListArray of DescribeSceneListResponseSceneItemThe scene information list. See the DescribeSceneListResponseSceneItem structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeSceneList
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"SceneName": "Access Control",
"Offset": 0,
"Limit": 20
}
Output Example
{
"Response": {
"TotalCount": 1,
"SceneList": [
{
"SceneId": "scene001",
"SceneName": "Shenzhen Nanshan Access Control No.1",
"SceneGroupId": "sg001",
"SceneGroupName": "Shenzhen Nanshan Area",
"DeviceSn": "SN001",
"DeviceName": "Shenzhen Nanshan Access Control Device",
"ScenarioStrategy": "AccessOnDeviceRecognition50k",
"VerifyRuleIdList": ["vr_001"],
"CreatedTime": "2025-01-01T00:00:00.000Z",
"UpdatedTime": "2025-07-15T09:30:00.000Z"
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Scene Group List

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query the scene group list, supporting multi-condition filtering and pagination.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeSceneGroupList.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
SceneGroupIdListNoArray of StringThe list of scene group IDs. Exact match. Supports batch query.
SceneGroupNameNoStringThe scene group name. Supports fuzzy search.
ParentSceneGroupIdNoStringThe parent scene group ID. When passed, only the direct child scene groups under that parent are returned; if not passed, all scene groups are returned.
OffsetNoIntegerThe offset. The default is 0.
LimitNoIntegerThe number of records to return. The default is 20, and the maximum is 100.

3. Output Parameters

Parameter NameTypeDescription
TotalCountIntegerThe total number of scene groups that meet the conditions.
SceneGroupListArray of DescribeSceneGroupListResponseSceneGroupItemThe scene group information list. See the DescribeSceneGroupListResponseSceneGroupItem structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeSceneGroupList
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"ParentSceneGroupId": "sg_root",
"Offset": 0,
"Limit": 20
}
Output Example
{
"Response": {
"TotalCount": 1,
"SceneGroupList": [
{
"SceneGroupId": "sg001",
"SceneGroupName": "Shenzhen Nanshan Area",
"ParentSceneGroupId": "sg_root",
"ParentSceneGroupName": "All Scene Groups",
"SceneCount": 3,
"ChildGroupCount": 1,
"CreatedTime": "2025-01-01T00:00:00.000Z",
"UpdatedTime": "2025-07-15T09:30:00.000Z"
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Verification Record APIs

Create Verification Record

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to create a verification record.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: CreateVerificationRecord.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserIdYesStringThe user ID.
VerificationTimeYesTimestampThe verification time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
VerificationMediumYesVerificationMediumThe verification medium.
DeviceSnYesStringThe device SN.
VerifierIdNoStringThe verifier ID.
VerifierNameNoStringThe verifier name.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: CreateVerificationRecord
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserId": "user001",
"VerificationTime": "2024-07-15T09:30:15.500Z",
"VerificationMedium": "palm",
"DeviceSn": "device001",
"VerifierId": "verifier001",
"VerifierName": "Jane Smith"
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.UserIdEmpty",
"Message": "The user ID cannot be empty."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Verification Record List

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query the verification record list, supporting multi-condition filtering and pagination.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeVerificationRecordList.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserIdNoStringThe user ID.
UserNameNoStringThe user name.
VerificationMediumNoVerificationMediumThe verification medium.
DeviceSnNoStringThe device SN.
SceneIdNoStringThe scene ID.
StartTimeNoTimestampThe verification start time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
EndTimeNoTimestampThe verification end time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
SceneGroupIdsNoArray of StringThe list of scene group IDs. Exact match (with child scene groups expanded).
SceneGroupNameNoStringThe scene group name. Fuzzy search.
OffsetNoIntegerThe offset. The default is 0.
LimitNoIntegerThe number of records to return. The default is 20, and the maximum is 100.
OrderByNoOrderByThe sorting condition. See the OrderBy structure.

3. Output Parameters

Parameter NameTypeDescription
TotalCountIntegerThe number of verification records that meet the conditions.
VerificationRecordListArray of DescribeVerificationRecordListResponseVerificationRecordThe verification record list. See the DescribeVerificationRecordListResponseVerificationRecord structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeVerificationRecordList
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserId": "user001",
"UserName": "John Doe",
"VerificationMedium": "palm",
"DeviceSn": "device001",
"StartTime": "2024-06-01T00:00:00+08:00",
"EndTime": "2024-06-30T23:59:59+08:00",
"Offset": 0,
"Limit": 10
}
Output Example
{
"Response": {
"TotalCount": 2,
"VerificationRecordList": [
{
"UserId": "user001",
"UserName": "John Doe",
"VerificationTime": "2024-06-10T09:15:00+08:00",
"VerificationMedium": "palm",
"DeviceSn": "device001",
"SceneId": "scene001",
"SceneName": "Shenzhen Nanshan Access Control No.1",
"VerifierId": "verifier001",
"VerifierName": "Jane Smith"
},
{
"UserId": "user001",
"UserName": "John Doe",
"VerificationTime": "2024-06-11T18:30:00+08:00",
"VerificationMedium": "palm",
"DeviceSn": "device002",
"SceneId": "scene002",
"SceneName": "Shenzhen Nanshan Access Control No.2",
"VerifierId": "verifier002",
"VerifierName": "Alex Lee"
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.FiltersLimitExceed",
"Message": "The number of filters exceeds the limit"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Verification Record (Push Only)

1. API Description

Push endpoint: provided by the customer to the platform; the platform actively pushes.

API description: Used to receive the verification record information pushed by the open platform. This API only supports push, not active pull.

The pushed content is the verification record details (see the table below). After the customer receives the push, returning HTTP 200 OK is sufficient.

2. Push Content (Parameter Structure)

Parameter NameTypeDescription
UserIdStringThe user ID.
UserNameStringThe user name.
VerificationTimeTimestampThe verification time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
VerificationMediumVerificationMediumThe verification medium.
DeviceSnStringThe device SN.
SceneIdStringThe scene ID.
SceneNameStringThe scene name.
VerifierIdStringThe verifier ID.
VerifierNameStringThe verifier name.
RequestIdStringThe unique request ID.

3. Push Example

POST / HTTP/1.1
Host: <customer push address domain>
Content-Type: application/json; charset=utf-8
X-TC-Action: CreateVerificationRecord

{
"UserId": "user001",
"UserName": "John Doe",
"VerificationTime": "2024-07-15T09:30:15.500Z",
"VerificationMedium": "palm",
"DeviceSn": "device001",
"SceneId": "scene001",
"SceneName": "Shenzhen Nanshan Access Control No.1",
"VerifierId": "verifier001",
"VerifierName": "Jane Smith",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}

After the customer receives the push, returning HTTP 200 OK is sufficient; no business data needs to be returned.


Verification Rule APIs

Create Verification Rule

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to create a verification rule, supporting the configuration of time rules and user rules, and can bind multiple scenes.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: CreateVerifyRule.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
VerifyRuleNameYesStringThe verification rule name.
EnableTimeRuleYesBooleanWhether to enable the time rule. false means not enabled, true means enabled.
TimeRuleNoTimeRuleThe time rule. It must be configured when the time rule is enabled. See the TimeRule structure.
EnableUserRuleYesBooleanWhether to enable the user rule. false means all users, true means specified users.
UserRuleNoUserRuleThe user rule. It must be configured when the user rule is enabled. See the UserRule structure.
EnableWebhookRuleNoBooleanWhether to enable the Webhook rule. Optional; if not passed, the default is true.
BindSceneIdListNoArray of StringThe list of bound scene IDs. Multiple scenes can be bound.

3. Output Parameters

Parameter NameTypeDescription
VerifyRuleIdStringThe verification rule ID.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: CreateVerifyRule
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"VerifyRuleName": "Weekday Morning and Evening Peak",
"EnableTimeRule": true,
"TimeRule": {
"AllowDateRange": {
"StartDate": {"Year": 2025, "Month": 1, "Day": 1},
"EndDate": {"Year": 2025, "Month": 12, "Day": 31}
},
"AllowDayOfWeekList": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"],
"AllowTimePeriodList": [
{
"StartTime": {"Hours": 7, "Minutes": 30, "Seconds": 0},
"EndTime": {"Hours": 9, "Minutes": 30, "Seconds": 0},
"MaxVerificationCount": 0
},
{
"StartTime": {"Hours": 17, "Minutes": 30, "Seconds": 0},
"EndTime": {"Hours": 20, "Minutes": 0, "Seconds": 0},
"MaxVerificationCount": 0
}
]
},
"EnableUserRule": true,
"UserRule": {
"UserTags": [
{"UserTagId": "tag001", "UserTagName": "R&D Center"}
],
"UserInfos": [
{"UserId": "user001", "UserName": "John Doe"}
]
},
"EnableWebhookRule": false,
"BindSceneIdList": ["scene001", "scene002"]
}
Output Example
{
"Response": {
"VerifyRuleId": "vr_20250715001",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Modify Verification Rule

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to modify existing verification rule information.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: ModifyVerifyRule.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
VerifyRuleIdYesStringThe globally unique verification rule ID.
VerifyRuleNameYesStringThe verification rule name.
EnableTimeRuleYesBooleanWhether to enable the time rule.
TimeRuleNoTimeRuleThe time rule. See the TimeRule structure.
EnableUserRuleYesBooleanWhether to enable the user rule.
UserRuleNoUserRuleThe user rule. See the UserRule structure.
EnableWebhookRuleYesBooleanWhether to enable the Webhook rule.
BindSceneIdListNoArray of StringThe list of bound scene IDs.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: ModifyVerifyRule
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"VerifyRuleId": "vr_20250715001",
"VerifyRuleName": "Weekday Peak and Noon",
"EnableTimeRule": true,
"TimeRule": {
"AllowDayOfWeekList": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"],
"AllowTimePeriodList": [
{"StartTime": {"Hours": 7, "Minutes": 30, "Seconds": 0}, "EndTime": {"Hours": 9, "Minutes": 30, "Seconds": 0}},
{"StartTime": {"Hours": 12, "Minutes": 0, "Seconds": 0}, "EndTime": {"Hours": 13, "Minutes": 30, "Seconds": 0}},
{"StartTime": {"Hours": 17, "Minutes": 30, "Seconds": 0}, "EndTime": {"Hours": 20, "Minutes": 0, "Seconds": 0}}
]
},
"EnableUserRule": false,
"EnableWebhookRule": true,
"BindSceneIdList": ["scene001"]
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Delete Verification Rule

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to delete a specified verification rule.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DeleteVerifyRule.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
VerifyRuleIdYesStringThe verification rule ID.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DeleteVerifyRule
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"VerifyRuleId": "vr_20250715001"
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Verification Rule

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query the detailed configuration of a specified verification rule.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeVerifyRule.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
VerifyRuleIdYesStringThe verification rule ID.

3. Output Parameters

Parameter NameTypeDescription
VerifyRuleIdStringThe verification rule ID.
VerifyRuleNameStringThe verification rule name.
EnableTimeRuleBooleanWhether the time rule is enabled.
TimeRuleTimeRuleThe time rule. See the TimeRule structure.
EnableUserRuleBooleanWhether the user rule is enabled.
UserRuleUserRuleThe user rule. See the UserRule structure.
EnableWebhookRuleBooleanWhether the Webhook rule is enabled.
BindSceneIdListArray of StringThe list of bound scene IDs.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeVerifyRule
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"VerifyRuleId": "vr_20250715001"
}
Output Example
{
"Response": {
"VerifyRuleId": "vr_20250715001",
"VerifyRuleName": "Weekday Morning and Evening Peak",
"EnableTimeRule": true,
"TimeRule": {
"AllowDateRange": {
"StartDate": {
"Year": 2025,
"Month": 1,
"Day": 1
},
"EndDate": {
"Year": 2025,
"Month": 12,
"Day": 31
}
},
"DisallowDateList": [
{
"Year": 2025,
"Month": 5,
"Day": 1
}
],
"AllowDayOfWeekList": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY"
],
"AllowTimePeriodList": [
{
"StartTime": {
"Hours": 7,
"Minutes": 30,
"Seconds": 0
},
"EndTime": {
"Hours": 9,
"Minutes": 30,
"Seconds": 0
},
"MaxVerificationCount": 0
},
{
"StartTime": {
"Hours": 17,
"Minutes": 30,
"Seconds": 0
},
"EndTime": {
"Hours": 20,
"Minutes": 0,
"Seconds": 0
},
"MaxVerificationCount": 0
}
]
},
"EnableUserRule": true,
"UserRule": {
"UserTags": [
{
"UserTagId": "tag001",
"UserTagName": "R&D Center"
}
],
"UserInfos": [
{
"UserId": "user001",
"UserName": "John Doe"
}
]
},
"EnableWebhookRule": false,
"BindSceneIdList": [
"scene001",
"scene002"
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Verification Rule List

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query the verification rule list, supporting multi-condition filtering and pagination.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeVerifyRuleList.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
VerifyRuleIdListNoArray of StringThe list of verification rule IDs. Exact match. Supports batch query.
VerifyRuleNameNoStringThe verification rule name. Supports fuzzy search.
OffsetNoIntegerThe offset. The default is 0.
LimitNoIntegerThe number of records to return. The default is 20, and the maximum is 100.

3. Output Parameters

Parameter NameTypeDescription
TotalCountIntegerThe total number of verification rules that meet the conditions.
VerifyRuleListArray of DescribeVerifyRuleListResponseVerifyRuleItemThe verification rule list. See the DescribeVerifyRuleListResponseVerifyRuleItem structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeVerifyRuleList
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"VerifyRuleName": "Weekday",
"Offset": 0,
"Limit": 20
}
Output Example
{
"Response": {
"TotalCount": 1,
"VerifyRuleList": [
{
"VerifyRuleId": "vr_20250715001",
"VerifyRuleName": "Weekday Morning and Evening Peak",
"EnableTimeRule": true,
"TimeRule": {
"AllowDayOfWeekList": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"],
"AllowTimePeriodList": [
{"StartTime": {"Hours": 7, "Minutes": 30, "Seconds": 0}, "EndTime": {"Hours": 9, "Minutes": 30, "Seconds": 0}, "MaxVerificationCount": 0}
]
},
"EnableUserRule": false,
"EnableWebhookRule": true,
"BindSceneIdList": ["scene001"],
"CreatedTime": "2025-01-01T00:00:00.000Z",
"UpdatedTime": "2025-07-15T09:30:00.000Z"
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Check Access Permission

1. API Description

Callback endpoint: provided by the customer to the platform; the platform actively calls it.

API description: Used to check a user's access permission. This API only supports callback, not active pull. The callback address must be provided to the platform in advance, and the platform actively calls it. The platform sends an access permission check request, and the customer decides based on their own rules and returns whether access is allowed and the reason.

2. Input Parameters

Parameter NameTypeDescription
UserIdStringThe user ID.
UserNameStringThe user name.
VerificationTimeTimestampThe verification time, in RFC3339 string format, such as "2025-07-03T09:30:15.500Z".
VerificationMediumVerificationMediumThe verification medium.
DeviceSnStringThe device SN.
SceneIdStringThe scene ID.
SceneNameStringThe scene name.

3. Output Parameters

Parameter NameTypeDescription
AllowedBooleanWhether access is allowed.
ReasonStringThe description of the access reason, such as "Hit verification rule: visitor reservation access".
RequestIdStringThe unique request ID. RequestId is returned for each request.

4. Request and Response Examples

Request Example
POST / HTTP/1.1
Host: <customer callback address domain>
Content-Type: application/json; charset=utf-8
X-TC-Action: CheckAccessPermission

{
"UserId": "user001",
"UserName": "John Doe",
"VerificationTime": "2025-07-15T09:30:15.500Z",
"VerificationMedium": "palm",
"DeviceSn": "device001",
"SceneId": "scene001",
"SceneName": "Shenzhen Nanshan Access Control No.1"
}
Response Example (Access Allowed)
{
"Response": {
"Allowed": true,
"Reason": "Hit verification rule: visitor reservation access",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Response Example (Access Denied)
{
"Response": {
"Allowed": false,
"Reason": "The user is not within the allowed time range",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

QR Code Palm Registration APIs

QR code palm registration service, suitable for open user registration scenarios.

The QR code is generated by the palm verification device. After the user registers their palm, the palm verification device displays a QR code that carries the user information. After the user scans the code, the application server is notified, and the application server registers the user based on the user information. Example URL obtained from scanning the QR code: https://app.intl.palm.tencent.com/local_h5/brushAuth?ocode=***&session_id=***&session_key=***&app_id=***&access_token=***

QR Code Scan Event Notification

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to notify the server of a user's QR code scan event. This API only verifies the Token, not the signature; the Authorization field is not required in the HTTP header.

Default API request rate limit: 20 times/second/AppId.

Note: This API requires the X-Palm-Appid field and the X-Palm-Openapi-Token field in the HTTP request header, which come from the app_id/access_token parameters in the scan URL and can be reused until the token expires.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: NotifyQrCodeScanEvent.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
SessionIdYesStringThe session ID.
EventTypeNoNotifyQrCodeScanEventRequestQrCodeScanEventTypeThe event type. See the NotifyQrCodeScanEventRequestQrCodeScanEventType enum. When not passed, it is equivalent to scanned.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID. RequestId is returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: NotifyQrCodeScanEvent
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: app_001
X-Palm-Openapi-Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

{
"SessionId": "session_001"
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

QR Code Palm Print Binding

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to bind a palm print via QR code. This API only verifies the Token, not the signature; the Authorization field is not required in the HTTP header.

Default API request rate limit: 20 times/second/AppId.

Note: This API requires the X-Palm-Appid field and the X-Palm-Openapi-Token field in the HTTP request header, which come from the app_id/access_token parameters in the scan URL and can be reused until the token expires.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: BindQrCodeScanPalm.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
SessionIdYesStringThe session ID.
UserIdYesStringThe unique user identifier.
UserNameYesStringThe user name.
ReplacePalmNoBooleanWhether to replace the palm.

3. Output Parameters

Parameter NameTypeDescription
UserSessionIdStringThe user session ID.
RequestIdStringThe unique request ID. RequestId is returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: BindQrCodeScanPalm
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: app_001
X-Palm-Openapi-Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

{
"SessionId": "session_001",
"UserId": "user001",
"UserName": "John Doe",
"ReplacePalm": false
}
Output Example
{
"Response": {
"UserSessionId": "user_session_001",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query QR Code Palm Registration User Information

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query QR code palm registration user information. This API only verifies the Token, not the signature; the Authorization field is not required in the HTTP header.

Default API request rate limit: 20 times/second/AppId.

Note: This API requires the X-Palm-Appid field and the X-Palm-Openapi-Token field in the HTTP request header, which come from the app_id/access_token parameters in the scan URL and can be reused until the token expires.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeQrCodeScanUser.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
SessionIdYesStringThe session ID.
UserIdYesStringThe unique user identifier.

3. Output Parameters

Parameter NameTypeDescription
UserIdStringThe unique user identifier.
PalmStatePalmStateThe main palm registration status.
UserNameStringThe user name.
UserStateUserStateThe user status. See the UserState enum.
PalmDirectionPalmDirectionThe main palm direction. See the PalmDirection enum.
LeftPalmPalmInfoThe left palm registration information. See the PalmInfo structure.
RightPalmPalmInfoThe right palm registration information. See the PalmInfo structure.
PhoneNoStringThe phone number (with area code).
RequestIdStringThe unique request ID. RequestId is returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeQrCodeScanUser
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: app_001
X-Palm-Openapi-Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

{
"SessionId": "session_001",
"UserId": "user001"
}
Output Example
{
"Response": {
"UserId": "user001",
"PalmState": "registered",
"UserName": "John Doe",
"UserState": "right_valid",
"PalmDirection": "right",
"RightPalm": {
"PalmState": "registered",
"RegisterType": "device",
"PreRegisterTime": "2025-06-01T10:00:00.000Z",
"RegisterTime": "2025-06-01T10:05:00.000Z",
"ExpireTime": "2026-06-01T10:05:00.000Z"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Create QR Code Palm Registration Session

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Creates a QR code palm registration session, used to generate the QR code or URL for users to scan and register their palm. It supports three session purposes: scan registration (scan_register), tap registration (tap_register), and tap verification (tap_verify). This API only verifies the Token, not the signature; the Authorization field is not required in the HTTP header.

Default API request rate limit: 20 times/second/AppId.

Note: This API requires the X-Palm-Appid field and the X-Palm-Openapi-Token field in the HTTP request header, which come from the app_id/access_token parameters in the scan URL and can be reused until the token expires.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: CreateQrCodeScanSession.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
TtlNoStringThe expected session lifetime. Takes effect for scan_register/tap_register scenarios. For tap_verify scenarios, it is determined by the tenant configuration (this field does not take effect). When not specified, the default is 1 hour for scan_register and 15 minutes for tap_register. Up to 24 hours. String format, such as "3600s".
ResponseFormatNoResponseFormatThe response data format. Options: metadata (default, returns metadata), url (returns the QR code URL), image (returns the QR code image).
PalmDirectionNoPalmDirectionThe palm direction, specifying the palm direction for this registration.
QrCodeSessionTypeNoQrCodeSessionTypeThe session purpose. When not passed or passed as scan_register, it is scan registration (default behavior); tap_register is tap registration; tap_verify is tap verification.
UserIdNoStringThe user ID. Required for tap_register/tap_verify scenarios.
UserNameNoStringThe user name. Required for tap_register scenarios, optional for tap_verify scenarios.
PhoneNoNoStringThe phone number. Optional in tap registration scenarios. When passed, it checks whether it matches the backend user's phone number.

3. Output Parameters

Parameter NameTypeDescription
SessionIdStringThe session ID.
ExpireTimeTimestampThe session expiration time, in RFC3339 string format, such as "2025-07-03T09:30:15.500Z".
AppIdStringThe application ID. Subsequent palm registration requests for this session must carry it in the HTTP request header "X-Palm-Appid".
AccessTokenStringThe access token. Subsequent palm registration requests for this session must carry it in the HTTP request header "X-Palm-Openapi-Token".
AccessTokenExpireTimeTimestampThe token expiration time, in RFC3339 string format, such as "2025-07-03T09:30:15.500Z".
SessionUrlStringThe session URL. For scan_register scenarios, it is a complete H5 link; for tap_register/tap_verify scenarios, it is a session identifier. Returned only when ResponseFormat=url.
SessionImageStringThe session QR code image (base64-encoded binary data). Returned only when ResponseFormat=image.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: CreateQrCodeScanSession
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************

{
"Ttl": "3600s",
"ResponseFormat": "metadata",
"PalmDirection": "right",
"QrCodeSessionType": "scan_register"
}
Output Example
{
"Response": {
"SessionId": "session_001",
"ExpireTime": "2025-07-03T10:30:15.500Z",
"AppId": "app_001",
"AccessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"AccessTokenExpireTime": "2025-07-03T10:30:15.500Z",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query QR Code Palm Registration Session Status

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to query the QR code palm registration session status. This API only verifies the Token, not the signature; the Authorization field is not required in the HTTP header.

Default API request rate limit: 20 times/second/AppId.

Note: This API requires the X-Palm-Appid field and the X-Palm-Openapi-Token field in the HTTP request header, which come from the app_id/access_token parameters in the scan URL and can be reused until the token expires.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeQrCodeScanSession.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
SessionIdYesStringThe session ID.

3. Output Parameters

Parameter NameTypeDescription
QrCodeScanStateQrCodeScanStateThe QR code scan status.
UserIdStringThe unique user identifier.
UserNameStringThe user name.
ReplacePalmBooleanWhether to replace the palm.
PalmDirectionPalmDirectionThe palm direction.
QrCodeSessionTypeQrCodeSessionTypeThe session purpose. The device distinguishes whether it is a scan registration, tap registration, or tap verification scenario based on this field.
PhoneNoStringThe phone number (with area code).
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeQrCodeScanSession
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: app_001
X-Palm-Openapi-Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

{
"SessionId": "session_001"
}
Output Example
{
"Response": {
"QrCodeScanState": "scanned",
"UserId": "user001",
"UserName": "John Doe",
"ReplacePalm": false,
"PalmDirection": "right",
"QrCodeSessionType": "scan_register",
"PhoneNo": "+8613800138000",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

PalmMa Login APIs

Send SMS Verification Code

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to send an SMS verification code to a specified phone number. This is an open API that does not verify the Token or the signature; the Authorization and X-Palm-Openapi-Token fields are not required in the HTTP header.

Default API request rate limit: 20 times/second/AppId.

Note: This API requires the X-Palm-Appid field in the HTTP request header.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: SendPalmMaSmsCode.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
PhoneNoYesStringThe phone number (with area code).

3. Output Parameters

Parameter NameTypeDescription
SessionIdStringThe session ID, used for subsequent verification code validation.
ExpireTimeTimestampThe session expiration time, in RFC3339 string format, such as "2025-07-03T09:30:15.500Z".
ResendIntervalStringThe session verification code resend interval, such as "60s".
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: SendPalmMaSmsCode
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223

{
"PhoneNo": "+8613800138000"
}
Output Example
{
"Response": {
"SessionId": "sess_1234567890abcdef",
"ExpireTime": "2025-07-03T09:40:15.500Z",
"ResendInterval": "60s",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

SMS Verification Code Login

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Used to log in a user via SMS verification code. After a successful login, an access token and a refresh token are returned. This is an open API that does not verify the Token or the signature; the Authorization and X-Palm-Openapi-Token fields are not required in the HTTP header.

Default API request rate limit: 20 times/second/AppId.

Note: This API requires the X-Palm-Appid field in the HTTP request header. The verification code can only be used once, and the SessionId becomes invalid immediately after successful verification.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: LoginPalmMaSmsCode.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
SmsCodeNoStringThe SMS verification code (verified each time; the code can only be used once). If SMS capability is not configured at deployment, this field does not need to be passed.
SessionIdNoStringThe SessionId returned when sending the verification code (one-time use; becomes invalid immediately after successful verification). If SMS capability is not configured at deployment, this field does not need to be passed.
UserIdYesStringThe user ID.
PhoneNoNoStringThe phone number (with area code), used to verify against the phone number bound to the backend user. If not passed, the verification is skipped.
GrantTypeNoGrantTypeGrant type.
When calling the open APIs of the Palm Application Platform, you must use client_credential.

Value enum:
- client_credential_user: Applicable to scenarios where a third-party platform integrates the Mobile Palm Registration SDK, that is:
a. The mobile side uses the SDK to initiate registration or to obtain the liveness video upload address;
b. The third-party server needs to apply for an access credential for a specified user, to be used by the SDK;
c. In this case, the UserId field must be passed as well.

- client_credential: Applicable to scenarios where a regular server calls the open APIs, that is:
a. This type is not bound to a specific user and only uses the application-level key to obtain the access credential;
b. The UserId field does not need to be passed.

If not passed, the default is the client_credential_user type. See the GrantType enum.

3. Output Parameters

Parameter NameTypeDescription
AccessTokenStringThe access token (short-lived, e.g., 2 hours). Subsequent requests in the current session must carry this token in the HTTP request header "X-Palm-Openapi-Token".
AccessTokenExpireTimeTimestampThe access token expiration time, in RFC3339 string format, such as "2025-07-03T09:30:15.500Z".
RefreshTokenStringThe refresh token (long-lived, e.g., 30 days), used to refresh the access token.
RefreshTokenExpireTimeTimestampThe refresh token expiration time, in RFC3339 string format, such as "2025-07-03T09:30:15.500Z".
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: LoginPalmMaSmsCode
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223

{
"SmsCode": "123456",
"SessionId": "sess_1234567890abcdef",
"UserId": "user001",
"GrantType": "client_credential"
}
Output Example
{
"Response": {
"AccessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"AccessTokenExpireTime": "2025-07-03T11:30:15.500Z",
"RefreshToken": "refresh_token_xxx",
"RefreshTokenExpireTime": "2025-08-02T09:30:15.500Z",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Palm Print Management APIs (Palm Algorithm Platform)

Create Palm Print

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Upload palm images to create a palm print and return the palm print ID, with two-factor authentication.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: CreatePalm.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
RgbImageYesImageThe RGB image data. See the Image structure.
IrImageYesImageThe infrared image data. See the Image structure.
PalmDirectionYesPalmPaasPalmDirectionThe palm direction. See the PalmPaasPalmDirection enum. 1: Left hand, 2: Right hand.

3. Output Parameters

Parameter NameTypeDescription
PalmIdStringThe palm print ID.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: CreatePalm
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"RgbImage": {
"Data": "... feature data, requires base64",
"ThreePointList": [
{"PointX": 279.19387799999998, "PointY": 283.87393200000002},
{"PointX": 355.835083, "PointY": 282.88299599999999},
{"PointX": 429.38259900000003, "PointY": 321.33651700000001}
],
"ImageType": 1
},
"IrImage": {
"Data": "... feature data, requires base64",
"ThreePointList": [
{"PointX": 279.19387799999998, "PointY": 283.87393200000002},
{"PointX": 355.835083, "PointY": 282.88299599999999},
{"PointX": 429.38259900000003, "PointY": 321.33651700000001}
],
"ImageType": 2
},
"PalmDirection": 1
}
Output Example
{
"Response": {
"PalmId": "8db884f9-1fb8-44f5-bdaa-f98fdcb3cd47",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.PalmIdEmpty",
"Message": "The palm print ID is empty"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Bind Palm Print

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Bind an already-created palm print ID to a specified user, with two-factor authentication.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: BindPalm.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserIdYesStringThe unique user identifier.
PalmIdYesStringThe palm print ID.
IsForceNoBooleanWhether to force rebinding.
AlgorithmStrategyNoAlgorithmStrategyThe algorithm strategy type. See the AlgorithmStrategy enum.

3. Output Parameters

Parameter NameTypeDescription
PalmIdStringThe user's palm print ID. If the user has already bound palm print information, the system automatically updates the existing palm print data (the original palm print ID remains unchanged) and returns the palm print ID already registered by the user.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: BindPalm
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserId": "user001",
"PalmId": "8db884f9-1fb8-44f5-bdaa-f98fdcb3cd47",
"IsForce": true,
"AlgorithmStrategy": 2
}
Output Example
{
"Response": {
"PalmId": "8db884f9-1fb8-44f5-bdaa-f98fdcb3cd47",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.UserNotExist",
"Message": "The user does not exist"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Upload RGB+IR palm images and perform a 1:N search for the user, and return the additional verification information.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: SearchMobilePalm.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
ProductVersionNoStringThe palm product algorithm version, provided by the integrated product, such as v20250715.
RgbImageYesImageThe RGB image data. See the Image structure.
IrImageNoImageThe infrared image data, used to supplement the palm database after subsequent additional verification passes. See the Image structure.
PalmDirectionYesPalmPaasPalmDirectionThe palm direction. See the PalmPaasPalmDirection enum. 1: Left hand, 2: Right hand.

3. Output Parameters

Parameter NameTypeDescription
VerifyInfoVerifyInfoThe additional verification information. See the VerifyInfo structure.
PalmIdStringThe palm print ID.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: SearchMobilePalm
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"ProductVersion": "v20250715",
"RgbImage": {
"Data": "base64encodedRgbImageData...",
"ImageType": 1,
"ThreePointList": [
{"PointX": 279.19387799999998, "PointY": 283.87393200000002},
{"PointX": 355.835083, "PointY": 282.88299599999999},
{"PointX": 429.38259900000003, "PointY": 321.33651700000001}
]
},
"IrImage": {
"Data": "base64encodedIrImageData...",
"ImageType": 2,
"ThreePointList": [
{"PointX": 279.19387799999998, "PointY": 283.87393200000002},
{"PointX": 355.835083, "PointY": 282.88299599999999},
{"PointX": 429.38259900000003, "PointY": 321.33651700000001}
]
},
"PalmDirection": 1
}
Output Example
{
"Response": {
"VerifyInfo": {
"NeedVerify": true,
"UserId": "user001",
"VerifyId": "a1b2c3d4-5678-9abc-def0-1234567890ab",
"VerifyType": 3,
"HighSimilarityUserIdList": []
},
"PalmId": "8db884f9-1fb8-44f5-bdaa-f98fdcb3cd47",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InternalError",
"Message": "Internal error"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

User Additional Verification

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Complete the user identity additional verification and bind the palm print.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: Verify.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
VerifyIdYesStringThe additional verification ID. Source: VerifyInfo.VerifyId returned by SearchMobilePalm.
UserIdYesStringThe unique identifier of the user to be verified.
VerifyResultYesVerifyResultThe additional verification result. See the VerifyResult enum.
AlgorithmStrategyNoAlgorithmStrategyThe algorithm strategy type. See the AlgorithmStrategy enum.

3. Output Parameters

Parameter NameTypeDescription
VerifyInfoVerifyInfoThe additional verification information, returned when further verification is required. See the VerifyInfo structure.
PalmIdStringReturns the user's palm print ID when the additional verification succeeds.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: Verify
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"VerifyId": "a1b2c3d4-5678-9abc-def0-1234567890ab",
"UserId": "user001",
"VerifyResult": 1,
"AlgorithmStrategy": 2
}
Output Example
{
"Response": {
"PalmId": "8db884f9-1fb8-44f5-bdaa-f98fdcb3cd47",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Further Additional Verification Required Output Example
{
"Response": {
"VerifyInfo": {
"NeedVerify": true,
"UserId": "user002",
"VerifyId": "b2c3d4e5-6789-abcd-ef01-234567890abc",
"VerifyType": 1,
"HighSimilarityUserIdList": ["user003", "user004"]
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.UserIdEmpty",
"Message": "The user ID is empty"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Delete Palm Print

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Delete the palm print information of a specified user.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DeletePalm.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserIdYesStringThe unique user identifier.
PalmDirectionListYesArray of PalmPaasPalmDirectionThe list of palm print directions. You can pass both the left and right hand, or the left or right hand individually.

3. Output Parameters

Parameter NameTypeDescription
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DeletePalm
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserId": "user001",
"PalmDirectionList": [1, 2]
}
Output Example
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.UserNotExist",
"Message": "The user does not exist"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Palm Print

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Query the palm print information of a specified user.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribePalm.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
UserIdYesStringThe unique user identifier.
UserTokenNoStringThe user token. The client SDK queries via the token.

3. Output Parameters

Parameter NameTypeDescription
LeftPalmPalmPaasPalmInfoThe left palm print information. See the PalmPaasPalmInfo structure.
RightPalmPalmPaasPalmInfoThe right palm print information. See the PalmPaasPalmInfo structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribePalm
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"UserId": "user001"
}
Output Example
{
"Response": {
"LeftPalm": {
"PalmState": 3,
"PalmDirection": 1,
"RegisterTime": 1700000000,
"RegisterType": 1
},
"RightPalm": {
"PalmState": 3,
"PalmDirection": 2,
"RegisterTime": 1700000100,
"RegisterType": 1
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "FailedOperation.UserNotExist",
"Message": "The user does not exist"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Synchronize Palm Print Feature

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Synchronize palm print features.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: SynchronizePalmFeature.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
ProductVersionYesStringThe product version to synchronize, such as v20250715. This version number must match the version number on the device.
QueryPositionYesStringThe current synchronization position. Fill in an empty string for the first time, and use the QueryPosition data from the response for the next time.
DeviceIdYesStringThe device ID. Currently it is only used for troubleshooting.
DisableFeatureNoBooleanProhibit returning the feature value. The default is false (returned); true means not returned.
OperationsNoArray of PalmPaasOperationFilter by operation type. When empty, no filtering is applied and all statuses are returned; for example, passing [1] returns only new feature events. See the PalmPaasOperation enum.

3. Output Parameters

Parameter NameTypeDescription
PalmFeatureDetailListArray of PalmFeatureDetailThe palm print feature detail list. See the PalmFeatureDetail structure.
HasMoreHasMoreTypeWhether there is more data. See the HasMoreType enum. 1: No more data, 2: More data available for continued synchronization; there may be other statuses in the future, and if added, the documentation will be updated accordingly.
QueryPositionStringThe current synchronization position.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: SynchronizePalmFeature
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"ProductVersion": "v1.0",
"QueryPosition": "",
"DeviceId": "X8AZ112D4646978SKAP3ZX3",
"DisableFeature": false
}
Output Example
{
"Response": {
"PalmFeatureDetailList": [
{
"PalmId": "8db884f9-1fb8-44f5-bdaa-f98fdcb3cd47",
"Status": 1,
"ImageType": 1,
"Feature": {
"FeatureValue": "... feature data, requires base64",
"FeatureType": 1,
"FeatureDigest": "md5hash",
"FeatureDimension": 128
},
"PalmDirection": 1,
"PalmDataVersion": 100,
"UserId": "user001",
"Operation": 1
}
],
"HasMore": 2,
"QueryPosition": "position_abc",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Product Version List

1. API Description

Request endpoint: open.intl.palm.tencent.com

API description: Query the product version list.

Default API request rate limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this API is: DescribeVersionList.
VersionYesStringCommon parameter. The value for this API is: 2025-07-15.
ProductNameYesStringThe product name. For the Standard version, this is fixed as: standard.

3. Output Parameters

Parameter NameTypeDescription
VersionListArray of ProductVersionInfoThe version information list. See the ProductVersionInfo structure.
RequestIdStringThe unique request ID, returned for each request.

4. Example

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeVersionList
X-TC-Timestamp: 1704067200
X-TC-Version: 2025-07-15
X-TC-Nonce: b6a5c4e3a2b1c0d9e8f7a6b5c4d3e2f1
X-Palm-AppId: 223
X-Palm-Openapi-Token: **************************************
Authorization: TC3-HMAC-SHA256 Credential=AKIDxxx/2025-07-15/palm/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx

{
"ProductName": "standard"
}
Output Example
{
"Response": {
"VersionList": [
{
"ProductVersion": "v20250715",
"ProductVersionCreateTime": 1700000000,
"Status": 1,
"OldProductName": ""
},
{
"ProductVersion": "v20250801",
"ProductVersionCreateTime": 1700100000,
"Status": 2,
"OldProductName": "standard_v1"
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error Output Example
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "Invalid parameter value"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}


Data Structures

Common Business Structures

PalmInfo

Single palm registration information.

NameTypeDescription
PalmStatePalmStateThe palm status.
RegisterTypeRegisterTypeThe registration method.
PreRegisterTimeTimestampThe mobile palm registration time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
RegisterTimeTimestampThe palm registration completion time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
ExpireTimeTimestampThe palm print expiration time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".

TimeRule

NameTypeDescription
AllowDateRangeDateRangeThe allowed verification date range. Empty means no restriction.
DisallowDateListDate[]The list of dates on which verification is not allowed.
AllowDayOfWeekListDayOfWeek[]The valid days of the week.
AllowTimePeriodListTimePeriod[]The daily allowed access time periods.

DateRange

NameTypeDescription
StartDateDateThe start date.
EndDateDateThe end date.

Date

NameTypeDescription
YearIntegerYear.
MonthIntegerMonth.
DayIntegerDay.

TimeOfDay

NameTypeDescription
HoursIntegerHours.
MinutesIntegerMinutes.
SecondsIntegerSeconds.

TimePeriod

NameTypeDescription
StartTimeTimeOfDayThe start time.
EndTimeTimeOfDayThe end time.
MaxVerificationCountIntegerThe number of allowed verifications. 0 means no restriction.

UserRule

NameTypeDescription
UserTagsUserTagInfo[]The user tag list.
UserInfosUserInfo[]The user information list.

UserTagInfo

NameTypeDescription
UserTagIdStringThe unique user tag identifier.
UserTagNameStringThe user tag name.

UserInfo

NameTypeDescription
UserIdStringThe unique user identifier.
UserNameStringThe user name.

OrderBy

Sorting condition.

NameTypeDescription
FieldVerificationRecordOrderFieldThe sort field.
OrderSortOrderThe sort direction.

Image

Image.

NameTypeDescription
DataStringThe image data. Requires base64.
ThreePointListArray of PointfThe three-point data.
ImageTypeImageTypeThe image type. See the ImageType enum.
DataDigestStringThe MD5 computed for the image data.

Pointf

Point.

NameTypeDescription
PointXFloatThe X-axis coordinate.
PointYFloatThe Y-axis coordinate.

Feature

Feature.

NameTypeDescription
FeatureValueStringThe feature value.
FeatureTypeFeatureTypeThe feature type. See the FeatureType enum.
FeatureDigestStringThe feature signature.
FeatureDimensionIntegerThe dimension of the feature value.

VerifyInfo

Additional verification information.

NameTypeDescription
NeedVerifyBooleanWhether additional verification is required. The VerifyInfo information is meaningful only when this returns true.
UserIdStringThe user ID to be verified.
VerifyIdStringThe additional verification ID.
VerifyTypeVerifyTypeThe additional verification type. See the VerifyType enum.
HighSimilarityUserIdListArray of StringReturned when the additional verification type is high-similarity additional verification, indicating the list of high-similarity user IDs to be verified.

PalmFeatureDetail

Palm print feature details.

NameTypeDescription
PalmIdStringThe palm print ID.
StatusPalmStatusThe palm print status. See the PalmStatus enum.
ImageTypeImageTypeThe image type. See the ImageType enum.
FeatureFeatureThe feature. See the Feature structure.
PalmDirectionPalmPaasPalmDirectionThe palm print direction. See the PalmPaasPalmDirection enum.
PalmDataVersionIntegerThe data version. Each data record contains a version number field, identified by a monotonically increasing integer version. When the data content changes, its version number automatically increments. During data synchronization, the system uses a version comparison mechanism: the local data needs to be overwritten only when the locally stored version number is strictly greater than the synchronized version number.
UserIdStringThe user ID.
OperationPalmPaasOperationThe operation type. See the PalmPaasOperation enum.

ProductVersionInfo

Product version information.

NameTypeDescription
ProductVersionStringThe palm product algorithm version, provided by the integrated product, such as v20250715.
ProductVersionCreateTimeIntegerThe product version creation time.
StatusIntegerThe palm product algorithm version type. 1: the current version in use; 2: the version to be upgraded.
OldProductNameStringThe original product name.

API-Specific Structures

Palm Print Management APIs

PalmPaasPalmInfo

The single palm registration information returned by the Query Palm Print API (DescribePalm).

Note: This structure is used only for palm print management APIs. Its field set differs from the PalmInfo used by user management APIs (no PreRegisterTime, but has additional PalmDirection / MobileRegisterTime).

NameTypeDescription
PalmStatePalmPaasPalmStateThe palm status. See the PalmPaasPalmState enum.
PalmDirectionPalmPaasPalmDirectionThe palm direction. See the PalmPaasPalmDirection enum.
RegisterTimeIntegerThe registration time, a Unix second-level timestamp.
ExpireTimeIntegerThe palm print expiration time, a Unix second-level timestamp. Returned only when the user's palm print is in the mobile palm registration pending stage (PalmState=2, pending activation); not returned in other states.
MobileRegisterTimeIntegerThe mobile palm registration time.
RegisterTypePalmPaasRegisterTypeThe registration type. See the PalmPaasRegisterType enum.

User Management APIs

CreateUserResponsePartialFailureError

The partial failure error information for the Create User API.

NameTypeDescription
NotExistUserTagIdListArray of StringThe list of non-existent user tag IDs.
ModifyUserResponsePartialFailureError

The partial failure error information for the Modify User API.

NameTypeDescription
NotExistUserTagIdListArray of StringThe list of non-existent user tag IDs.
DescribeUserResponseUserTag

The element structure of the output parameter UserTagList of the Query User (DescribeUser) API.

Field NameTypeDescription
UserTagIdStringThe user tag ID.
UserTagNameStringThe user tag name.
DescribeUserListResponseUser

The element structure of the output parameter UserList of the Query User Information List (DescribeUserList) API.

Field NameTypeDescription
UserIdStringThe unique user identifier.
UserNameStringThe user name.
PhoneNoStringThe phone number (with area code).
PhysicalCardNoStringThe physical card number.
UserTagListArray of DescribeUserListResponseUserTagThe user tag list. See the DescribeUserListResponseUserTag structure.
RegisterTypeRegisterTypeThe main palm registration type.
PalmStatePalmStateThe main palm registration status.
PalmDirectionPalmDirectionThe main palm direction.
PalmPreRegisterTimeTimestampThe main palm pre-registration time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
PalmRegisterTimeTimestampThe main palm registration time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
PalmExpireTimeTimestampThe main palm feature expiration time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
UserStateUserStateThe user status.
CreatedTimeTimestampThe user creation time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampThe user's last update time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
DescribeUserListResponseUserTag

The element structure of the output parameter UserList[i].UserTagList of the Query User Information List (DescribeUserList) API.

Field NameTypeDescription
UserTagIdStringThe user tag ID.
UserTagNameStringThe user tag name.

User Tag Management APIs

DescribeUserTagListResponseUserTagItem

The element structure of the output parameter UserTagList of the Query User Tag List (DescribeUserTagList) API.

Field NameTypeDescription
UserTagIdStringThe tag ID.
UserTagNameStringThe tag name.
UserCountIntegerThe number of users associated with the tag.
ParentTagIdStringThe parent tag ID. Empty indicates a top-level tag.
LevelIntegerThe level depth: 0=L1 (top level), 1=L2 (level 2), 2=L3 (level 3).
ChildrenCountIntegerThe number of direct child tags.
PathNodesArray of UserTagNodeThe complete hierarchical path from the root tag to the current tag, returned in parent-to-child order. See the UserTagNode structure.
CreatedTimeTimestampThe creation time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampThe last update time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
UserTagNode

The user tag hierarchical path node structure, used to represent the complete hierarchical path from the root tag to the current tag.

Field NameTypeDescription
UserTagIdStringThe user tag ID.
UserTagNameStringThe user tag name.
LevelIntegerThe tag level: 0=L1 (top level), 1=L2 (level 2), 2=L3 (level 3).
UserTag

The user tag information structure.

Field NameTypeDescription
UserTagIdStringThe user tag ID.
UserTagNameStringThe user tag name.
PathNodesArray of UserTagNodeThe complete hierarchical path from the root tag to the current tag, returned in parent-to-child order.
UserTagTreeNode

The tag tree node structure, used for the output of the Query User Tag Tree (DescribeUserTagTree) API.

Field NameTypeDescription
UserTagIdStringThe tag ID.
UserTagNameStringThe tag name.
UserCountIntegerThe number of users associated with the tag.
LevelIntegerThe level depth: 0=L1, 1=L2, 2=L3.
ParentTagIdStringThe parent tag ID. Empty for top-level tags.
ChildrenArray of UserTagTreeNodeThe child tag nodes.

User Access Scope

AccessScopeItem

The element structure of the output parameter AccessScopeList of the Query User Access Scope (DescribeUserAccessScope) API.

Field NameTypeDescription
SceneIdStringThe scene ID.
SceneNameStringThe scene name.
SceneGroupIdStringThe scene group ID.
SceneGroupNameStringThe scene group name.
DeviceSnStringThe device SN (empty when no device is bound).
DeviceNameStringThe device name (empty when no device is bound).
VerifyRulesArray of VerifyRuleInfoThe list of bound verification rules (an empty array when no rules are bound).
VerifyRuleInfo

The verification rule information structure.

Field NameTypeDescription
VerifyRuleIdStringThe verification rule ID.
VerifyRuleNameStringThe verification rule name.
AccessScopeSummary

The structure of the output parameter Summary of the Query User Access Scope Summary (DescribeUserAccessScopeSummary) API.

Field NameTypeDescription
SceneGroupCountIntegerThe number of accessible scene groups.
SceneCountIntegerThe number of accessible scenes.
DeviceCountIntegerThe number of accessible devices.

Device Management APIs

DescribeDeviceListResponseDevice

The element structure of the output parameter DeviceList of the Query Device List (DescribeDeviceList) API.

Field NameTypeDescription
DeviceSnStringThe device serial number.
DeviceTypeStringThe device type.
DeviceNameStringThe device name.
HeartbeatTimeTimestampThe device heartbeat time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
ModuleHeartbeatTimeTimestampThe module heartbeat time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
SystemVersionStringThe system version.
AppVersionStringThe application version.
ModuleTypeStringThe module type.
ModuleVersionStringThe module version.
ModuleExpireTimeTimestampThe module expiration time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
StatusDeviceStatusThe device real-time status.
SceneIdStringThe bound scene ID.
SceneNameStringThe bound scene name.
CreatedTimeTimestampThe device creation time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampThe last update time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".

Scene Management APIs

DescribeSceneListResponseSceneItem

The element structure of the output parameter SceneList of the Query Scene List (DescribeSceneList) API.

Field NameTypeDescription
SceneIdStringThe scene ID.
SceneNameStringThe scene name.
SceneGroupIdStringThe ID of the scene group it belongs to.
SceneGroupNameStringThe name of the scene group it belongs to.
DeviceSnStringThe bound device serial number.
DeviceNameStringThe bound device name.
ScenarioStrategyScenarioStrategyThe scene strategy.
VerifyRuleIdListArray of StringThe list of associated verification rule IDs.
CreatedTimeTimestampThe creation time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampThe last update time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
DescribeSceneGroupListResponseSceneGroupItem

The element structure of the output parameter SceneGroupList of the Query Scene Group List (DescribeSceneGroupList) API.

Field NameTypeDescription
SceneGroupIdStringThe scene group ID.
SceneGroupNameStringThe scene group name.
ParentSceneGroupIdStringThe parent scene group ID. This value is "0" for top-level scene groups.
ParentSceneGroupNameStringThe parent scene group name. This value is empty for top-level scene groups.
SceneCountIntegerThe number of direct child scenes.
ChildGroupCountIntegerThe number of direct child scene groups.
CreatedTimeTimestampThe creation time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampThe last update time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".

Verification Record APIs

DescribeVerificationRecordListResponseVerificationRecord

The element structure of the output parameter VerificationRecordList of the Query Verification Record List (DescribeVerificationRecordList) API.

Field NameTypeDescription
UserIdStringThe user ID.
UserNameStringThe user name.
VerificationTimeTimestampThe verification time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
VerificationMediumVerificationMediumThe verification medium.
DeviceSnStringThe device SN.
SceneIdStringThe scene ID.
SceneNameStringThe scene name.
VerifierIdStringThe verifier ID.
VerifierNameStringThe verifier name.
SceneGroupIdStringThe scene group ID.
SceneGroupNameStringThe scene group name.

Verification Rule APIs

DescribeVerifyRuleListResponseVerifyRuleItem

The element structure of the output parameter VerifyRuleList of the Query Verification Rule List (DescribeVerifyRuleList) API.

Field NameTypeDescription
VerifyRuleIdStringThe globally unique verification rule ID.
VerifyRuleNameStringThe verification rule name.
EnableTimeRuleBooleanWhether the time rule is enabled.
TimeRuleTimeRuleThe time rule. See the TimeRule structure.
EnableUserRuleBooleanWhether the user rule is enabled.
UserRuleUserRuleThe user rule. See the UserRule structure.
EnableWebhookRuleBooleanWhether the Webhook rule is enabled.
BindSceneIdListArray of StringThe list of bound scene IDs.
CreatedTimeTimestampThe creation time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampThe last update time, in RFC3339 format, such as "2025-07-03T09:30:15.500Z".

Enums

PalmState

The palm status.

Return type: string, with values being the enum value names in the table below.

Enum ValueDescription
unregisteredNot registered.
pre_registeredPre-registered.
registeredRegistered.
abnormalAbnormal.

UserState

Return type: string, with values being the enum value names in the table below.
The user status represents the respective statuses of the user's two palms, without distinguishing pre-registration.

Enum ValueDescription
user_state_unspecifiedUnspecified.
both_unregisteredUnregistered: Neither palm has been registered.
not_activatedNot Activated: After mobile palm registration, no palm is activated.
user_state_abnormalAbnormal: The user status is abnormal (at least one palm is abnormal, and no palm is activated).
left_validLeft Valid: The left palm is activated while the right palm is not activated.
right_validRight Valid: The right palm is activated while the left palm is not activated.
both_validBoth Valid: Both palms are activated.

VerificationMedium

Return type: string, with values being the enum value names in the table below.

Enum ValueDescription
verification_medium_unspecifiedUnspecified medium.
palmPalm scan.
cardCard swipe.
codeCode scan.

NotifyQrCodeScanEventRequestQrCodeScanEventType

The QR code scan event type. The value of the input parameter EventType of the QR Code Scan Event Notification (NotifyQrCodeScanEvent) API.

Return type: string, with values being the enum value names in the table below.

Enum ValueDescription
qrcode_scan_event_type_unspecifiedThe event type is unspecified, equivalent to scanned.
scannedThe user has scanned the code.

DayOfWeek

Return type: string, with values being the enum value names in the table below.

Enum ValueDescription
NONEUnspecified.
MONDAYMonday.
TUESDAYTuesday.
WEDNESDAYWednesday.
THURSDAYThursday.
FRIDAYFriday.
SATURDAYSaturday.
SUNDAYSunday.

ScenarioStrategy

Return type: string, with values being the enum value names in the table below.

Enum ValueDescription
DefaultDefault.
DemoOnDeviceRecognition100100 User Demo On-device Recognition.
AccessOnDeviceRecognition50k50k User Access Control On-device Recognition.
EKYCCloudRecognition1M1M User eKYC Cloud Recognition.
EKYCHybridRecognition1M1M User eKYC Hybrid Recognition.

RegisterType

The registration type.

Return type: string, with values being the enum value names in the table below.

Enum ValueDescription
register_type_unspecifiedThe registration type is unspecified.
deviceDevice registration.
mobileMobile registration.

PalmDirection

The palm direction.

Return type: string, with values being the enum value names in the table below.

Enum ValueDescription
palm_direction_unspecifiedThe palm direction is unspecified.
leftLeft hand.
rightRight hand.

AdditionalVerifyMethod

The additional verification method.

Return type: string, with values being the enum value names in the table below.

Enum ValueDescription
additional_verify_method_unspecifiedUnspecified; falls back to the last four digits of the phone number.
phone_noThe last four digits of the phone number.
custom_fieldCustom field digit verification.
qr_codeQR code tap verification.

DeviceStatus

The device status.

Return type: integer, with values being the enum values in the table below.

Enum ValueDescription
0The device status is unspecified.
1Online.
2Offline.

VerificationRecordOrderField

The verification record ordering field.

Return type: string, with values being the enum value names in the table below.

Enum ValueDescription
verification_record_order_field_unspecifiedUnspecified.
verification_timeVerification time.

SortOrder

The sort direction.

Return type: string, with values being the enum value names in the table below.

Enum ValueDescription
sort_order_unspecifiedUnspecified.
ascAscending.
descDescending.

ImageType

The image type.

Return type: integer, with values being the enum values in the table below.

Enum ValueDescription
1Rgb
2Ir

PalmPaasPalmDirection

The palm direction.

Return type: integer, with values being the enum values in the table below.

Enum ValueDescription
1Left hand.
2Right hand.

FeatureType

The feature type.

Return type: integer, with values being the enum values in the table below.

Enum ValueDescription
1float32
2int8
3int7

PalmStatus

The palm print data status.

Return type: integer, with values being the enum values in the table below.

Enum ValueDescription
1Normal.
2Deleted.

PalmPaasOperation

The operation type.

Return type: integer, with values being the enum values in the table below.

Enum ValueDescription
1Create.
2Update.
3Delete.

PalmPaasPalmState

The palm status.

Return type: integer, with values being the enum values in the table below.

Enum ValueDescription
1Pending capture; the user exists but has not registered a palm.
2Pending activation; the user has enabled mobile palm registration but has not yet bound a palm.
3Activated; the user has bound a palm via an offline device.
100First registration, awaiting additional verification.
101High-similarity status.
102The user was incorrectly bound.
103The user has enabled mobile palm registration, but the user was found during mobile palm registration when another user was binding their palm.

PalmPaasRegisterType

The registration type.

Return type: integer, with values being the enum values in the table below.

Enum ValueDescription
0Unspecified.
1Device registration.
2Mobile registration.

HasMoreType

Whether there is more data.

Return type: integer, with values being the enum values in the table below.

Enum ValueDescription
1No more data.
2More data available.

AlgorithmStrategy

The algorithm strategy type. The Standard version supports strategies A and B; the Max version supports strategies A, B, C, and D.

Return type: integer, with values being the enum values in the table below.

Enum ValueDescription
0Unspecified, the default value.
1Strategy A: 100 User Demo On-device Recognition.
2Strategy B: 50k User Access Control On-device Recognition.
3Strategy C: 1M User eKYC Cloud Recognition.
4Strategy D: 1M User eKYC Hybrid Recognition.

VerifyType

The additional verification type.

Return type: integer, with values being the enum values in the table below.

Enum ValueDescription
0Unspecified, the default value.
1High-similarity additional verification.
2Does not meet the first-level threshold but meets the second-level threshold, and the auxiliary background image comparison threshold does not pass.
3Mobile palm registration additional verification.
4New registration type additional verification.

VerifyResult

The additional verification result. The value of the input parameter VerifyResult of the User Additional Verification (Verify) API.

Return type: integer, with values being the enum values in the table below.

Enum ValueDescription
0Unspecified, the default value.
1Success.
2Failure.

GrantType

The grant type.

Return type: string, with values being the enum value names in the table below.

Enum ValueDescription
grant_type_unspecifiedUnspecified; by default equivalent to client_credential_user.
client_credential_userApplicable to scenarios where a third-party platform integrates the Mobile Palm Registration SDK; in this case, the UserId field must be passed as well.
client_credentialApplicable to scenarios where a regular server calls the open APIs; the UserId field does not need to be passed. This type must be used when calling the open APIs of the Palm Application Platform.

QrCodeScanState

The QR code scan status.

Return type: string, with values being the enum value names in the table below.

Enum ValueDescription
pendingWaiting to scan the code.
scannedScanned, waiting to fill in information.
successQR code palm registration succeeded.
failedQR code palm registration failed.
expiredThe QR code palm registration QR code session has expired.

ResponseFormat

The response data format.

Return type: string, with values being the enum value names in the table below.

Enum ValueDescription
metadataReturns metadata (default, recommended); returns fields other than SessionUrl and SessionImage.
urlReturns the QR code URL; returns SessionId, ExpireTime, and SessionUrl.
imageReturns the QR code image (PNG); returns SessionId, ExpireTime, and SessionImage.

QrCodeSessionType

The QR code session purpose.

Return type: string, with values being the enum value names in the table below.

Enum ValueDescription
scan_registerScan registration: the device generates a QR code → the user scans the code → palm registration and binding.
tap_registerTap registration: the app generates a QR code (carrying user information) → the device scans the code → palm registration and binding.
tap_verifyTap verification: the app generates a QR code (carrying user information) → the device scans the code → identity verification.

Common Structures

Error

NameTypeDescription
CodeStringThe error code.
MessageStringThe error message.

Error Codes

Function Description

If the Error field exists in the return result, it indicates that the API call failed. For example:

{
"Response": {
"Error": {
"Code": "AuthFailure.SignatureFailure",
"Message": "The provided credentials could not be validated. Please check your signature is correct."
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

The Code in Error indicates the error code, and the Message indicates the specific information of the error.

Common Error Codes

Error CodeDescription
InvalidParameterParameter error (including errors in parameter format, type, etc.).
InvalidParameterValueInvalid parameter value.
MissingParameterMissing parameter error; a required parameter is not filled in.
UnknownParameterUnknown parameter error; passing extra undefined parameters causes an error.
AuthFailureCAM signature/authentication error.
InternalErrorInternal error. Businesses must uniformly use InternalError or InternalError.xxx to indicate internal errors.
InvalidActionThe API does not exist.
UnauthorizedOperationUnauthorized operation.
RequestLimitExceededThe number of requests exceeds the rate limit.
NoSuchVersionThe API version does not exist.
UnsupportedRegionThe API does not support the region passed.
UnsupportedOperationThe operation is not supported.
ResourceNotFoundThe resource does not exist.
LimitExceededThe quota limit is exceeded.
ResourceUnavailableThe resource is unavailable.
ResourceInsufficientInsufficient resources.
ResourceExhaustedInsufficient resource quota or the rate limit is reached.
FailedOperationThe operation failed.
ResourceInUseThe resource is in use.
DryRunOperationDryRun operation, indicating that the request would have been successful; the DryRun parameter was just additionally passed.
ResourcesSoldOutThe resource is sold out.
OperationDeniedThe operation is denied.

Business Error Codes

Error CodeDescription
InvalidParameterValue.FiltersLimitExceedThe number of Filters exceeds the limit.
InvalidParameterValue.PageLimitExceedThe pagination parameter exceeds the limit.
InvalidParameterValue.PageTokenExpiredThe pagination token has expired.
InvalidParameterValue.PageTokenSignatureFailureThe pagination token signature verification failed.
InvalidParameterValue.PageTokenQueryMismatchThe pagination token query condition does not match.
ResourceNotFound.TenantNotFoundThe specified tenant does not exist, or you do not have permission to access this tenant.
InvalidParameterValue.UserIdEmptyThe user ID is empty.
InvalidParameterValue.UserIdLengthNotAllowedThe user ID length does not meet the limit.
InvalidParameterValue.UserIdShouldOnlyContainLettersAndDigitsThe user ID can only contain letters and digits.
InvalidParameterValue.UserIdShouldOnlyContainGraphicsAsciiThe user ID can only contain ASCII graphic characters (ASCII range: 33-126).
InvalidParameterValue.UserNameEmptyThe user name is empty.
InvalidParameterValue.UserNameLengthNotAllowedThe user name length does not meet the limit.
InvalidParameterValue.UserNameOrPasswordEmptyThe user name or password is empty.
InvalidParameterValue.PhoneNoEmptyThe phone number is empty.
InvalidParameterValue.PhoneNoLengthNotAllowedThe phone number length does not meet the limit.
InvalidParameterValue.InvalidPhoneNoThe phone number format is incorrect.
InvalidParameterValue.PhysicalCardNoLengthNotAllowedThe physical card number length does not meet the limit.
InvalidParameterValue.PhysicalCardNoShouldOnlyContainLettersAndDigitsThe physical card number can only contain letters and digits.
InvalidParameterValue.PalmIdEmptyThe palm print ID is empty.
InvalidParameterValue.SessionIdEmptyThe session ID is empty.
InvalidParameterValue.SessionIdLengthNotAllowedThe session ID length does not meet the limit.
InvalidParameterValue.SessionNotExistThe session does not exist.
InvalidParameterValue.InvalidUserIdThe user ID format is incorrect; it can only contain digits, letters, and hyphens.
InvalidParameterValue.RegisterTypeNotAllowedThe registration type does not meet the limit.
InvalidParameterValue.UserTagIdEmptyThe user tag ID is empty.
InvalidParameterValue.UserTagIdLengthNotAllowedThe user tag ID length does not meet the limit.
InvalidParameterValue.InvalidUserTagIdThe user tag ID format is incorrect.
InvalidParameterValue.UserTagNameEmptyThe user tag name is empty.
InvalidParameterValue.UserTagNameLengthNotAllowedThe user tag name length does not meet the limit.
InvalidParameterValue.DeviceSnEmptyThe device SN is empty.
InvalidParameterValue.DeviceSnLengthNotAllowedThe device SN length does not meet the limit.
InvalidParameterValue.DeviceSnShouldOnlyContainLettersAndDigitsThe device SN can only contain letters and digits.
InvalidParameterValue.InvalidDeviceSnThe device SN format is incorrect.
InvalidParameterValue.DeviceNameEmptyThe device name is empty.
InvalidParameterValue.DeviceNameLengthNotAllowedThe device name length does not meet the limit.
InvalidParameterValue.ErrDeviceNameInvalidThe device name format is incorrect.
InvalidParameterValue.SceneIdEmptyThe scene ID is empty.
InvalidParameterValue.SceneIdLengthNotAllowedThe scene ID length does not meet the limit.
InvalidParameterValue.SceneIdShouldOnlyContainLettersAndDigitsThe scene ID can only contain letters and digits.
InvalidParameterValue.InvalidSceneIdThe scene ID format is incorrect.
InvalidParameterValue.SceneNameEmptyThe scene name is empty.
InvalidParameterValue.SceneNameLengthNotAllowedThe scene name length does not meet the limit.
InvalidParameterValue.SceneGroupIdEmptyThe scene group ID is empty.
InvalidParameterValue.SceneGroupIdLengthNotAllowedThe scene group ID length does not meet the limit.
InvalidParameterValue.SceneGroupIdShouldOnlyContainLettersAndDigitsThe scene group ID can only contain letters and digits.
InvalidParameterValue.InvalidSceneGroupIdThe scene group ID format is incorrect.
InvalidParameterValue.SceneGroupNameEmptyThe scene group name is empty.
InvalidParameterValue.SceneGroupNameLengthNotAllowedThe scene group name length does not meet the limit.
InvalidParameterValue.VerifierIdEmptyThe verifier ID is empty.
InvalidParameterValue.VerifierIdLengthNotAllowedThe verifier ID length does not meet the limit.
InvalidParameterValue.VerifierIdShouldOnlyContainLettersAndDigitsThe verifier ID can only contain letters and digits.
InvalidParameterValue.InvalidVerifierIdThe verifier ID format is incorrect.
InvalidParameterValue.VerifierNameEmptyThe verifier name is empty.
InvalidParameterValue.VerifierNameLengthNotAllowedThe verifier name length does not meet the limit.
InvalidParameterValue.QrCodeScanSessionIdEmptyThe QR code palm registration session ID is empty.
InvalidParameterValue.QrCodeScanSessionTtlNotAllowedThe QR code palm registration session expected lifetime does not meet the limit.
FailedOperation.UserNotExistThe user does not exist.
FailedOperation.UserAlreadyExistsThe user already exists.
FailedOperation.UserIdAlreadyExistsThe user ID already exists.
FailedOperation.PhoneNoAlreadyExistsThe phone number already exists.
FailedOperation.UserPalmAlreadyBoundThe user's palm is already bound.
FailedOperation.SceneNotExistThe scene does not exist.
FailedOperation.SceneAlreadyExistsThe scene already exists.
FailedOperation.SceneGroupNotExistThe scene group does not exist.
FailedOperation.SceneGroupAlreadyExistsThe scene group already exists.
FailedOperation.DuplicateSceneNameInSceneGroupDuplicate scene name within the scene group.
FailedOperation.DuplicateSceneGroupNameInSceneGroupDuplicate scene group name within the scene group.
FailedOperation.DeviceSceneBindingLimitExceededThe device-scene binding exceeds the limit.
FailedOperation.QrCodeExpiredThe palm registration QR code has expired.
FailedOperation.QrCodeFinishedThe palm registration QR code has been used.
FailedOperation.QrCodeStatusInvalidThe palm registration QR code status is invalid.
FailedOperation.BindPalmUserIdAndUserNameNotMatchThe user ID and user name for binding the palm print do not match.
FailedOperation.VerifyRuleAlreadyExistThe verification rule already exists.
FailedOperation.VerifyRuleNotExistThe verification rule does not exist.
FailedOperation.DeviceNotExistThe device does not exist.
FailedOperation.DeviceAlreadyExistsThe device already exists.
FailedOperation.DeviceCannotBeDeletedWhenBindWithSceneThe device cannot be deleted while bound to a scene.
FailedOperation.DeviceNotBoundWithSceneThe device is not bound to a scene.
FailedOperation.UserTagNotExistThe user tag does not exist.
FailedOperation.UserTagAlreadyExistsThe user tag already exists.
FailedOperation.UserTagNameAlreadyExistsThe user tag name already exists.
InternalError.GetPaaSChannelFailedFailed to get the PaaS channel.
InternalError.UpdateUserPalmFailedFailed to update the user's palm.
InternalError.CreateUserTokenFailedFailed to create the user token.
InternalError.BindUserPalmByPaaSChannelFailedFailed to bind the user's palm via the PaaS channel.
InternalError.DeleteUserPalmByPaaSChannelFailedFailed to delete the user's palm via the PaaS channel.
InternalError.DescribeUserPalmByPaaSChannelFailedFailed to query the user's palm via the PaaS channel.
InternalError.CreateAccessTokenFailedFailed to create the open API access token.
InternalError.CreateDeviceAccessTokenFailedFailed to create the open API device access token.
InternalError.DescribeSecretKeyFailedFailed to query the open API access key.
FailedOperation.MemberNotExistThe member does not exist.
FailedOperation.MemberAlreadyExistsThe member already exists.
FailedOperation.MemberLoginExpiredThe member login has expired.
FailedOperation.NoAvailableVersionNo available version.
FailedOperation.UnknownImageTypeUnknown image type.
FailedOperation.PicInconsistentThe image MD5 is inconsistent.
FailedOperation.LivenessCheckNoPassLiveness detection failed.
FailedOperation.QualityCheckNoPassQuality detection failed.
FailedOperation.LivenessWithVideoCheckNoPassLiveness video detection failed.
FailedOperation.PalmIdNoExistInCacheThe palmID does not exist.
FailedOperation.AlreadyBindAlready bound.
FailedOperation.ThirdAuthFailAuthentication failed.
FailedOperation.NoFoundDataInDbNo data found in the database.
FailedOperation.NoSearchUserNo matching user found in the palm print search hot library.
FailedOperation.UnknownVerifyTypeUnknown verification type.
FailedOperation.TableCapacityFullInsufficient system capacity.
FailedOperation.VerifyUserIdNoMatchThe verification user ID does not match.
FailedOperation.VerifyIdExpireThe verification ID has expired.
FailedOperation.PalmIdAlreadyExistThe palmID already exists.
FailedOperation.HighSimilarityA high-similarity palm exists.
FailedOperation.PalmCapacityFullThe user's palm print search hot library capacity has reached the upper limit.
FailedOperation.LiveImageAlreadyExistThe image already exists.
FailedOperation.QrCodeUserIdNotMatchSessionThe QR code palm registration user ID does not match the session.
LimitExceeded.VerifyRuleUserTagsExceedLimitThe number of tags associated with the verification rule exceeds the limit.
LimitExceeded.VerifyRuleUsersExceedLimitThe number of users associated with the verification rule exceeds the limit.
FailedOperation.MemberDisabledThe member has been disabled.
OperationDenied.TenantDisabledThe tenant has been disabled and cannot log in.
InvalidParameterValue.SmsCodeEmptyThe SMS verification code is empty.
InvalidParameterValue.RefreshTokenEmptyThe refresh token is empty.
InvalidParameterValue.SmsCodeNotMatchThe SMS verification code is incorrect.
InvalidParameterValue.PhoneNoNotMatchThe phone number does not match the verification code session.
ResourceNotFound.SmsSessionNotExistThe verification code session does not exist or has expired.
ResourceNotFound.RefreshTokenNotExistThe refresh token does not exist or has expired.
ResourceExhausted.SmsResendTooFrequentSMS verification codes are being sent too frequently.
ResourceExhausted.SmsMaxVerifyAttemptsToo many verification code attempts.
FailedOperation.SmsSendFailedSMS sending failed.