Skip to main content

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

Tencent PalmAI Server-Side API Reference

Version History

VersionRelease DateUpdate Description
v2.4.02026-08-12New Interfaces
• Added the RegisterPalm (register palm print) interface, which uploads a palm image to create a palm print and bind it to a specified user. Two-factor authentication

Interface Parameter Changes
• The description of the IrImage parameter of the CreatePalm interface is corrected from "infrared image data" to "IR image data"
• The description of the IrImage parameter of the SearchMobilePalm interface is corrected from "infrared image data" to "IR image data"
• The CustomFieldValue parameter of the CreateUser and ModifyUser interfaces is deprecated. A new CustomFieldValueList parameter (Array of CustomFieldValueItem) is added, supporting configuration of multiple custom additional verification field values
• The CustomFieldValue field in the DescribeUser interface response is deprecated. A new CustomFieldValues field (Array of CustomFieldValueItem) is added
• The DescribeUserList interface adds the SkipTotalCount (skip total count) and SceneId (filter by scene ID) input parameters, and the response adds a HasMore field
• The DescribeVerificationRecordList interface adds the Source (filter by verification record source) and SkipTotalCount (skip total count) input parameters; the response adds a HasMore field, and the VerificationRecord structure adds the Source, AccessDenied (verification result), and Reason (verification description) fields
• The CreateVerificationRecord interface adds the Source (verification record source), AccessDenied (verification result), and Reason (verification description) input parameters
• The DescribeVerificationRecord push content adds the AccessDenied (verification result) and Reason (verification description) fields

New Enums and Data Structures
• Added the HighSimilarityResolutionStrategy enum (resolution strategy when a high-similarity user is detected during palm registration: reject_with_error/reject_with_similar_users)
• Added the CheckError enum (registration check error code: high_similarity_detected)
• Added the VerificationRecordSource enum (verification record source: device/mobile/server/h5/wechat); enum value web renamed to h5 and weixin renamed to wechat, with descriptions streamlined
• Added the CustomFieldValueItem common data structure (custom additional verification field value item)
v2.3.02026-07-13New Interfaces
• Added the DescribeUserAccessScope (query user access scope) and DescribeUserAccessScopeSummary (query user access scope summary) interfaces
• Added the DescribeUserTagTree (query user tag tree structure) interface

Interface Opening
• The SendPalmMaSmsCode (send SMS verification code) and LoginPalmMaSmsCode (SMS verification code login) interfaces are opened to external use from internal use, and a new "PalmMa Login Interfaces" category is added
• The CreateQrCodeScanSession (create QR Code Palm Registration session) and DescribeQrCodeScanSession (query QR Code Palm Registration session status) interfaces are opened to external use from internal use

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

New Enums and Data Structures
• Added the GrantType enum (grant type: client_credential_user/client_credential)
• Added the UserTagNode common data structure (tag level path node)
• Added the UserTag common data structure (user tag information, including the PathNodes level path)
• Added the UserTagTreeNode common data structure (tag tree node)
• Added the AccessScopeItem, AccessScopeSummary, and VerifyRuleInfo common data structures
• Added the error code FailedOperation.PhoneNoAlreadyExists (1113, phone number already exists)
• The DeviceStatus enum serialization was changed from string to integer (int32)
v2.2.02026-06-17Version number upgraded; no interface changes
v2.1.02026-05-07New Interfaces
• Added 6 list query interfaces: DescribeUserList (query user information list), DescribeUserTagList (query user tag list), DescribeDeviceList (query device list), DescribeSceneList (query scene list), DescribeSceneGroupList (query scene group list), and DescribeVerifyRuleList (query verification rule list)

Interface Parameter Changes
• The CreateUser and ModifyUser interfaces add the CustomFieldValue parameter (custom additional verification field value)
• The DescribeUser interface response adds a CustomFieldValue field
• The DescribeUserList interface adds the PhoneNo, PhysicalCardNo, and UserTagId filter parameters; the response adds the CreatedTime and UpdatedTime fields
• The DescribeDeviceList interface is opened to external use, adding the Status, SceneId, and DeviceType filter parameters; the response adds the Status, SceneId, SceneName, CreatedTime, and UpdatedTime fields
• The DescribeVerificationRecordList interface adds the SceneGroupIds, SceneGroupName, and OrderBy parameters; the response adds the SceneGroupId and SceneGroupName fields
• The NotifyQrCodeScanEvent interface adds the EventType parameter (QR code scan event type)
• The VerifyResult parameter of the Verify interface is changed from Integer to the VerifyResult enum (values: 1: success, 2: failure), clarifying the valid value range (semantics unchanged; legacy callers passing 1/2 remain fully compatible)

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

Introduction

Overview

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

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

Glossary

For common terms of the Tencent PalmAI API, see the table below:

TermDescription
AppIdThe unique application identifier. It is 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 between different AppIds.
RGBColor image.
IRInfrared image.
Three pointsThe data output after image detection and alignment.
Feature valueThe data 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 search matching efficiency. Data in the system is divided into search hot library data stored in GPU memory or RAM, and general storage data (including ordinary databases, object storage, file storage, etc.).
Device typeThe model identifier of the Palm Verification Device. Currently valid values: M3, M3B, M4, O1, O2.
Module typeThe model identifier of the recognition module used by the Palm Verification Device. Currently valid 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 Classification

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

Authentication Management Interfaces

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

User Management Interfaces

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 Interfaces

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 Interfaces

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

Device Management Interfaces

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

Scene Management Interfaces

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 Interfaces

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

Verification Rule Interfaces

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 Interfaces

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateQrCodeScanSessionCreate QR Code Palm Registration session20
NotifyQrCodeScanEventUser QR code scan event notification20
BindQrCodeScanPalmQR Code Palm Binding20
DescribeQrCodeScanSessionQuery QR Code Palm Registration session status20
DescribeQrCodeScanUserQuery QR Code Palm Registration user information20

PalmMa Login Interfaces

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

Palm Print Management Interfaces (Palm Algorithm Platform)

Interface nameInterface functionFrequency limit (times/second/AppId)
CreatePalmCreate Palm Print20
BindPalmBind Palm Print20
RegisterPalmRegister 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 scenarioRequest headers
Signature + TokenMost management interfaces (user, device, scene, palm print, etc.)Authorization + X-Palm-Openapi-Token
Token onlyQR Code Palm Registration interfaces (NotifyQrCodeScanEvent, BindQrCodeScanPalm, DescribeQrCodeScanSession, DescribeQrCodeScanUser)Only X-Palm-Openapi-Token, no Authorization required

Note:

  1. Before calling any interface, you must first obtain an AccessToken through CreateAccessToken (this interface itself uses signature authentication).
  2. Signature-authenticated interfaces carry both Authorization (signature) and X-Palm-Openapi-Token (Token) in the request headers.
  3. Token-only authenticated interfaces only need to carry X-Palm-Openapi-Token, without computing a signature.

Request Structure

The request structure of the Palm API is as follows:

1. Service Endpoint

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

  • Default access domain (recommended): open.intl.palm.tencent.com (for illustration only; the actual access domain is subject to assignment, and private deployment scenarios are supported)
  • Specified regional access (extensible if multiple regions are deployed): e.g., open.intl.palm.tencent.com (for illustration only; the actual access domain is subject to assignment)

Note: The domain is the access point of the API and does not represent the region where the product or interface actually provides services. If multiple regions are deployed later, this will be supplemented in 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 values:
    • application/json (recommended; the signature method v3/TC3-HMAC-SHA256 must be used)
  • When the POST method uses signature method v3, a request packet of up to 10MB is supported.

4. Character Encoding

All requests and responses use UTF-8 encoding.

Common Parameters

Common parameters are used to identify user identity, sign the interface, and carry 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 interface being called. 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.
AuthorizationStringYesThe signature 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 an AppId, SecretId, and SecretKey.
Keep the above information secure and pass it in interface requests as required by your business.
X-Palm-Openapi-TokenStringYesThe temporary security credential Token. Before calling a Tencent interface, you must first obtain the access credential through the [Obtain Access Credentials] interface (Action: CreateAccessToken). Note that access credentials are time-limited and must be reapplied for after expiration.

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

  • To verify the identity of the requester and ensure that the request comes from a user holding a valid key.
  • To protect data in transit and prevent requests from being tampered with.

Applying for Security Credentials

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

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

Users must strictly safeguard their security credentials to avoid leakage; otherwise, property security will be endangered. If a credential has been leaked, disable it immediately.

The specific steps to apply for security credentials 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 the key pair.

Signature Process (v3)

The API currently only supports 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 the example of binding a user's palm print to describe the signature calculation 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 calculation process in detail.

  1. Concatenate the canonical request string

Concatenate the canonical request string (CanonicalRequest) according to 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 HTTP request URL. For POST requests, it is fixed as an empty string ""; for GET requests, it is the string content after the question mark (?) in the URL, e.g., Limit=10&Offset=0. Note: CanonicalQueryString must be URL-encoded per RFC3986, with the UTF-8 character set. 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, which must contain 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 request. Concatenation rules: 1) Convert both header keys and values to lowercase and trim leading and trailing spaces, then concatenate in the format key:value\n; 2) For multiple headers, concatenate them in ASCII ascending order by header key (lowercase). In this example, the result 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: content-type must match what is actually sent. Some programming language network libraries automatically add a charset value even if not specified; if the signature and the sent request are inconsistent, the server will return a signature validation failure.
SignedHeadersThe header information involved in the signature, indicating which headers of this request participated in the signature. It corresponds 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 ASCII ascending order, separated by a semicolon (;). 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., Body). The calculation pseudocode is Lowercase(HexEncode(Hash.SHA256(RequestPayload))), i.e., perform SHA256 hashing 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 shown 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 according to 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 headers, taking 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 match the UTC standard time date converted from the common parameter X-TC-Timestamp; service is the product name and must be consistent with the product domain being called, which is palm here. In this example, the result is: 2025-07-15/palm/tc3_request.
HashedCanonicalRequestThe hash value of the canonical request string concatenated in the previous step. The calculation pseudocode is Lowercase(HexEncode(Hash.SHA256(CanonicalRequest))). In this example, the result is 3044b1650deaa09d3d1e93d63c15fd76c7c764254b3a1cba9c6b321eda191774.

⚠️ Note:

  1. Date must be calculated from the timestamp X-TC-Timestamp, and the time zone must be UTC+0. If local system time zone information (e.g., UTC+8) is included, calls will succeed during the day and evening but will always fail in the early morning. Suppose the timestamp is 1551113065; the time in UTC+8 is 2019-02-26 00:44:25, but the Date calculated in UTC+0 should be 2019-02-25, not 2019-02-26.
  2. Timestamp must be the current system time, and you must ensure that the system time is synchronized with standard time. If the difference exceeds five minutes, the call will always fail. If the system is not synchronized with standard time for a long time, the request may fail after running for a while and return 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. Calculate the signature
  1. Calculate the derived signing key, with the following pseudocode:
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 hexadecimal string representations are:
2fbd1f93d8d1aae5c0a4e2df255519752e1e4be521b9edae832930379544679c,
45589385000e5972fe3fb6ca9f07339289dee6e33e0b5bb9022308d69eb15fc9,
a116ccc06739ebac6c1c54514ace4229c98847c5f1ee5abc395eafab262b0246.
Note that in different programming languages, the order of parameters in the HMAC library function may differ; please follow the actual situation. In the pseudocode here, the key parameter comes first and the message parameter data comes last. Standard library functions usually provide a return value in binary format, and may also provide a print-friendly hexadecimal format; 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. Calculate the signature, with the following pseudocode:
Signature = HexEncode(HMAC_SHA256(SecretSigning, StringToSign))

In this example, the result is f4b012d34bd468efb5cb90cb6c326ed42ec0f7de22accb38350606d95fa6b5db.

  1. Concatenate Authorization

    Concatenate Authorization according to 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, see above; in this example it is 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. In this example, the result 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 in the request must be exactly the same as the content used in the signature calculation process; otherwise, a signature mismatch error will be returned. You can troubleshoot by printing the actual request content or capturing network packets for comparison.

Signature Demo (Python)

The following is complete demo code implementing the signature process 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: Calculate the signature *************
# Function to calculate the signature digest
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.SignatureExpireSignature expired. The difference between Timestamp and the time the server receives the request must not exceed five minutes.
AuthFailure.SecretIdNotFoundKey does not exist. Check in the console whether the key is disabled, or whether characters were missed or added during copying.
AuthFailure.SignatureFailureSignature error. This may be caused by an error in the signature calculation, a mismatch between the signature and the content actually sent, or an incorrect SecretKey.
AuthFailure.TokenFailureTemporary credential Token error.
AuthFailure.InvalidSecretIdInvalid key (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 state so in the documentation. When returning JSON data, the maximum limit 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 returned data size using the filtering or pagination features in the interface 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 interface as an example, a successful call returns the following:

{
"Response": {
"UserId": "user123456",
"UserName": "Zhang San",
"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 uniquely identifies an API request, facilitating troubleshooting.
  • The remaining fields are business fields defined by the specific interface.

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 "Error Codes" section of the interface documentation.

Common Error Codes

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

Parameter Types

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. It is recommended to define it with the largest integer type in different languages.123456
BooleanBoolean, true/falsetrue
FloatFloating point3.14
DoubleDouble-precision floating point3.1415926535
DateString, date format"2022-01-01"
TimestampString, time format"2022-01-01 00:00:00"
Timestamp RFC3339String, time format, RFC3339 standard time format; it is recommended to parse with a standard library"2022-01-01T00:00:20.021Z"
BinaryBinary content, which must be requested and parsed using 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
  • Failed operations can be retried based on the returned error information

How to Use Partial Failure

Interfaces 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 failed items exist, the response includes the PartialFailureError field, which describes the reason for 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": "Zhang San",
"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: To retry, after correcting tag003, you must pass in 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 operations such as creation and modification, 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 successful response, 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
    • Reinitiate the request after correcting the cause of failure
    • Note: For overwrite operations such as batch binding of user tags, you must pass the complete tag list when retrying (including previously successful items) rather than retrying only 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)

Interfaces That Support Partial Failure

The following interfaces 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 interfaces support the partial failure mechanism. For specific support, refer to the parameter description of each interface.


Authentication Management Interfaces

Obtain Access Credentials

1. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: CreateAccessToken.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
AppIdYesIntegerThe product ID assigned by the system
SecretIdYesStringThe customer's key ID
SecretKeyHashYesStringThe customer's key hash. The calculation rule is: hex.EncodeToString(sha256.Sum256(secretKey))
GrantTypeYesStringThe grant type.
When calling the open interfaces 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, i.e.:
a. The mobile client uses the SDK to initiate registration or obtain a liveness video upload address;
b. The third-party server needs to apply for an access credential for a specified user, for use by the SDK;
c. In this case, the UserId field must also be passed in.

- client_credential: Applicable to scenarios where an ordinary server calls the open interfaces, i.e.:
a. This type does not bind a specific user and only uses the application-level key to obtain an access credential;
b. The UserId field does not need to be passed in.
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, which can be used to access other interfaces subsequently
ExpiresInIntegerThe validity period of the AccessToken in seconds; the token becomes invalid after expiration
RequestIdStringThe unique request ID, returned for each request.

4. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribePalmLicense.
VersionYesStringCommon parameter. The value for this interface: 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 expiration.
RequestIdStringThe unique request ID, returned for each request.

4. Examples

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 Interfaces

Create User

1. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: CreateUser.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
UserIdYesStringThe unique user identifier.
UserNameYesStringThe user name.
PhoneNoNoStringThe phone number (with area code), e.g., "(+86)13800138000". If no area code is provided, it defaults to "(+86)".
PhysicalCardNoNoStringThe physical card number, a combination of digits and letters.
UserTagIdListNoArray of StringThe list of user tag IDs.
PartialFailureNoBooleanWhether to allow partial failure.
CustomFieldValueNoStringDeprecated; please use CustomFieldValueList.
CustomFieldValueListNoArray of CustomFieldValueItemThe list of custom additional verification field values. If both CustomFieldValue and CustomFieldValueList are passed, CustomFieldValueList takes precedence.

3. Output Parameters

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

4. Examples

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": "Zhang San",
"PhoneNo": "(+86)13800138000",
"PhysicalCardNo": "CARD001",
"UserTagIdList": ["tag001", "tag002"],
"PartialFailure": true,
"CustomFieldValueList": [
{"FieldName": "Employee ID", "FieldValue": "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": "InvalidParameterValue.UserNameEmpty",
"Message": "The user name is empty"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Modify User

1. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Used to modify user information, supporting updates to the user's basic information.

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: ModifyUser.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
UserIdYesStringThe unique user identifier.
UserNameYesStringThe user name.
PhoneNoNoStringThe phone number (with area code), e.g., "(+86)13800138000". If no area code is provided, it defaults to "(+86)".
PhysicalCardNoNoStringThe physical card number, a combination of digits and letters.
UserTagIdListNoArray of StringThe list of user tag IDs.
PartialFailureNoBooleanWhether to allow partial failure.
CustomFieldValueNoStringDeprecated; please use CustomFieldValueList.
CustomFieldValueListNoArray of CustomFieldValueItemThe full list of custom additional verification field values. If both CustomFieldValue and CustomFieldValueList are passed, CustomFieldValueList takes precedence.

3. Output Parameters

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

4. Examples

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": "Zhang San",
"PhoneNo": "(+86)13800138000",
"UserTagIdList": ["tag001", "tag002"],
"PartialFailure": true,
"CustomFieldValueList": [
{"FieldName": "Employee ID", "FieldValue": "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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

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

3. Output Parameters

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

4. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeUser.
VersionYesStringCommon parameter. The value for this interface: 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), e.g., "(+86)13800138000". If no area code is provided, it defaults to "(+86)".
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, e.g., "2025-07-03T09:30:15.500Z".
UserStateUserStateThe user status. See the UserState enum.
CustomFieldValueStringDeprecated; please use CustomFieldValues.
CustomFieldValuesArray of CustomFieldValueItemThe full list of custom additional verification field values.
RequestIdStringThe unique request ID, returned for each request.

4. Examples

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": "Zhang San",
"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",
"CustomFieldValues": [
{"FieldName": "Employee ID", "FieldValue": "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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeUserList.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
UserIdNoStringThe unique user identifier. Fuzzy query is supported.
UserNameNoStringThe user name. Fuzzy query is supported.
PhoneNoNoStringThe phone number. Exact match.
PhysicalCardNoNoStringThe physical card number. Exact match.
PalmStateNoPalmStateThe main palm registration status.
UserStateNoUserStateThe user status.
UserTagIdNoStringThe user tag ID, used to filter users that have the specified tag.
SceneIdNoStringThe scene ID, used to filter users who have access permission for that scene.
OffsetNoIntegerThe offset. Default 0.
LimitNoIntegerThe number of records to return. Default 20, maximum 100.
SkipTotalCountNoBooleanWhether to skip the total count. When set to true, TotalCount is not returned (to avoid slow queries), and HasMore is used instead to determine whether there is a next page.

3. Output Parameters

Parameter NameTypeDescription
TotalCountIntegerThe number of users that meet the conditions. When SkipTotalCount=true is requested, this field is not returned.
UserListArray of DescribeUserListResponseUserThe user list. See the DescribeUserListResponseUser structure.
HasMoreBooleanWhether there is more data. When SkipTotalCount=true is requested, this field is used to determine whether there is a next page.
RequestIdStringThe unique request ID, returned for each request.

4. Examples

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": "Zhang",
"PalmState": "registered",
"Offset": 0,
"Limit": 10
}
Output Example
{
"Response": {
"TotalCount": 1,
"UserList": [
{
"UserId": "user001",
"UserName": "Zhang San",
"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"
}
],
"HasMore": false,
"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. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Query the detailed information of the scenes, devices, and access time periods the user can access, based on the user ID.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

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

3. Output Parameters

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

4. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeUserAccessScopeSummary.
VersionYesStringCommon parameter. The value for this interface: 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. Examples

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 Interfaces

Create User Tag

1. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Used to create a new user tag.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: CreateUserTag.
VersionYesStringCommon parameter. The value for this interface: 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. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Used to modify user tag information.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: ModifyUserTag.
VersionYesStringCommon parameter. The value for this interface: 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. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

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

3. Output Parameters

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

4. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeUserTag.
VersionYesStringCommon parameter. The value for this interface: 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 (second level), 2=L3 (third level).
ChildrenCountIntegerThe number of direct child tags.
UserCountIntegerThe number of users associated with the tag.
PathNodesArray of UserTagNodeThe complete level 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. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeUserTagList.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
UserTagNameNoStringThe tag name. Fuzzy search is supported.
OffsetNoIntegerThe offset. Default 0.
LimitNoIntegerThe number of records to return. Default 20, maximum 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. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeUserTagTree.
VersionYesStringCommon parameter. The value for this interface: 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. Examples

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 Interfaces

Delete User Palm Information

1. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Used to delete the palm information of a specified user. After deletion, palm registration must be performed again.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DeleteUserPalm.
VersionYesStringCommon parameter. The value for this interface: 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. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeUserPalm.
VersionYesStringCommon parameter. The value for this interface: 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. Examples

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": "Zhang San",
"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 Interfaces

Create Device

1. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

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

3. Output Parameters

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

4. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Used to modify device information, supporting updates to the basic device information.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

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

3. Output Parameters

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

4. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

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

3. Output Parameters

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

4. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeDevice.
VersionYesStringCommon parameter. The value for this interface: 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, e.g., "2025-07-03T09:30:15.500Z".
AppVersionStringThe application version.
ModuleVersionStringThe module version.
SystemVersionStringThe system version.
RequestIdStringThe unique request ID, returned for each request.

4. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeDeviceList.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
DeviceSnNoStringThe device serial number. Exact match.
DeviceNameNoStringThe device name. Fuzzy search is supported.
StatusNoDeviceStatusThe device status filter.
SceneIdNoStringThe scene ID, used to filter devices bound to the specified scene.
DeviceTypeNoStringThe device type. For values, see the Glossary.
OffsetNoIntegerThe offset. Default 0.
LimitNoIntegerThe number of records to return. Default 20, maximum 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. Examples

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 Interfaces

Create Scene

1. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: CreateScene.
VersionYesStringCommon parameter. The value for this interface: 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. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Used to modify scene information, supporting updates to the basic scene information, bound devices, and verification rules.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: ModifyScene.
VersionYesStringCommon parameter. The value for this interface: 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. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

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

3. Output Parameters

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

4. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeScene.
VersionYesStringCommon parameter. The value for this interface: 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. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: CreateSceneGroup.
VersionYesStringCommon parameter. The value for this interface: 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. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Used to modify scene group information, supporting updates to the basic scene group information.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: ModifySceneGroup.
VersionYesStringCommon parameter. The value for this interface: 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. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

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

3. Output Parameters

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

4. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeSceneList.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
SceneIdListNoArray of StringThe list of scene IDs. Exact match, supporting batch query.
SceneNameNoStringThe scene name. Fuzzy search is supported.
SceneGroupIdNoStringThe scene group ID, used to filter scenes belonging to the specified scene group.
DeviceSnNoStringThe device serial number. Exact match.
VerifyRuleIdNoStringThe verification rule ID, used to filter scenes bound to the specified rule.
OffsetNoIntegerThe offset. Default 0.
LimitNoIntegerThe number of records to return. Default 20, maximum 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. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeSceneGroupList.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
SceneGroupIdListNoArray of StringThe list of scene group IDs. Exact match, supporting batch query.
SceneGroupNameNoStringThe scene group name. Fuzzy search is supported.
ParentSceneGroupIdNoStringThe parent scene group ID. When passed, only the direct child scene groups under this parent are returned; if not passed, all scene groups are returned.
OffsetNoIntegerThe offset. Default 0.
LimitNoIntegerThe number of records to return. Default 20, maximum 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. Examples

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 Interfaces

Create Verification Record

1. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Used to create a verification record.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: CreateVerificationRecord.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
UserIdYesStringThe user ID.
VerificationTimeYesTimestampThe verification time, in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
VerificationMediumYesVerificationMediumThe verification medium.
DeviceSnYesStringThe device SN.
VerifierIdNoStringThe verifier ID.
VerifierNameNoStringThe verifier name.
SourceNoVerificationRecordSourceThe verification record source. If not passed, it defaults to a report from the device.
AccessDeniedNoBooleanWhether the verification result is denied. Returned only when verification fails (value is true).
ReasonNoStringThe verification description.

3. Output Parameters

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

4. Examples

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": "Li Si",
"Source": "device"
}
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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeVerificationRecordList.
VersionYesStringCommon parameter. The value for this interface: 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, e.g., "2025-07-03T09:30:15.500Z".
EndTimeNoTimestampThe verification end time, in RFC3339 format, e.g., "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. Default 0.
LimitNoIntegerThe number of records to return. Default 20, maximum 100.
OrderByNoOrderByThe sorting condition. See the OrderBy structure.
SourceNoVerificationRecordSourceThe verification record source filter (optional).
SkipTotalCountNoBooleanWhether to skip the total count. When set to true, TotalCount is not returned (to avoid slow queries), and HasMore is used instead to determine whether there is a next page.

3. Output Parameters

Parameter NameTypeDescription
TotalCountIntegerThe number of verification records that meet the conditions. When SkipTotalCount=true is requested, this field is not returned.
VerificationRecordListArray of DescribeVerificationRecordListResponseVerificationRecordThe verification record list. See the DescribeVerificationRecordListResponseVerificationRecord structure.
HasMoreBooleanWhether there is more data. When SkipTotalCount=true is requested, this field is used to determine whether there is a next page.
RequestIdStringThe unique request ID, returned for each request.

4. Examples

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": "Zhang San",
"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": "Zhang San",
"VerificationTime": "2024-06-10T09:15:00+08:00",
"VerificationMedium": "palm",
"DeviceSn": "device001",
"SceneId": "scene001",
"SceneName": "Shenzhen Nanshan Access Control No.1",
"VerifierId": "verifier001",
"VerifierName": "Li Si",
"Source": "device",
"Reason": ""
},
{
"UserId": "user001",
"UserName": "Zhang San",
"VerificationTime": "2024-06-11T18:30:00+08:00",
"VerificationMedium": "palm",
"DeviceSn": "device002",
"SceneId": "scene002",
"SceneName": "Shenzhen Nanshan Access Control No.2",
"VerifierId": "verifier002",
"VerifierName": "Wang Wu",
"Source": "device",
"AccessDenied": true,
"Reason": "Not within the allowed access time period"
}
],
"HasMore": false,
"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. Interface Description

Interface push domain: provided by the customer to the platform; the platform pushes actively.

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

The push content is the verification record details (see the table below). After receiving the push, the customer only needs to return HTTP 200 OK.

2. Push Content (Parameter Structure)

Parameter NameTypeDescription
UserIdStringThe user ID
UserNameStringThe user name
VerificationTimeTimestampThe verification time, in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
VerificationMediumVerificationMediumThe verification medium
DeviceSnStringThe device SN
SceneIdStringThe scene ID
SceneNameStringThe scene name
VerifierIdStringThe verifier ID
VerifierNameStringThe verifier name
AccessDeniedBooleanWhether the verification result is denied. false indicates verification succeeded; true indicates verification failed.
ReasonStringThe verification description
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": "Zhang San",
"VerificationTime": "2024-07-15T09:30:15.500Z",
"VerificationMedium": "palm",
"DeviceSn": "device001",
"SceneId": "scene001",
"SceneName": "Shenzhen Nanshan Access Control No.1",
"VerifierId": "verifier001",
"VerifierName": "Li Si",
"AccessDenied": false,
"Reason": "",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}

After receiving the push, the customer only needs to return HTTP 200 OK, without returning business data.


Verification Rule Interfaces

Create Verification Rule

1. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: CreateVerifyRule.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
VerifyRuleNameYesStringThe verification rule name.
EnableTimeRuleYesBooleanWhether to enable the time rule. false indicates disabled; true indicates enabled.
TimeRuleNoTimeRuleThe time rule. Must be configured when the time rule is enabled. See the TimeRule structure.
EnableUserRuleYesBooleanWhether to enable the user rule. false indicates all users; true indicates specified users.
UserRuleNoUserRuleThe user rule. Must be configured when the user rule is enabled. See the UserRule structure.
EnableWebhookRuleNoBooleanWhether to enable the Webhook rule. Optional; if not passed, it defaults to 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. Examples

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": "Zhang San"}
]
},
"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. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Used to modify existing verification rule information.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: ModifyVerifyRule.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
VerifyRuleIdYesStringThe globally unique ID of the verification rule.
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. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Used to delete a specified verification rule.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

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

3. Output Parameters

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

4. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeVerifyRule.
VersionYesStringCommon parameter. The value for this interface: 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. Examples

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": "Zhang San"
}
]
},
"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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeVerifyRuleList.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
VerifyRuleIdListNoArray of StringThe list of verification rule IDs. Exact match, supporting batch query.
VerifyRuleNameNoStringThe verification rule name. Fuzzy search is supported.
OffsetNoIntegerThe offset. Default 0.
LimitNoIntegerThe number of records to return. Default 20, maximum 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. Examples

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. Interface Description

Interface callback domain: provided by the customer to the platform; the platform calls it actively.

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

2. Input Parameters

Parameter NameTypeDescription
UserIdStringThe user ID
UserNameStringThe user name
VerificationTimeTimestampThe verification time, in RFC3339 string format, e.g., "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 access reason description, e.g., "Matched verification rule: Visitor Appointment 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": "Zhang San",
"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": "Matched verification rule: Visitor Appointment 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 Interfaces

The QR Code Palm Registration service is suitable for open user registration scenarios.

The QR code is generated by the Palm Verification Device. After the user completes palm registration, 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 by 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. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Used to notify the server of the user's QR code scan event. This interface only verifies the Token, not the signature; the HTTP header does not require an Authorization field.

Default interface request frequency limit: 20 times/second/AppId.

Note: This interface requires providing 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 interface: NotifyQrCodeScanEvent.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
SessionIdYesStringThe session ID
EventTypeNoNotifyQrCodeScanEventRequestQrCodeScanEventTypeThe event type. See the NotifyQrCodeScanEventRequestQrCodeScanEventType enum. If not passed, it is equivalent to scanned.

3. Output Parameters

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

4. Examples

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 Binding

1. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Used to bind a palm print by scanning a QR code. This interface only verifies the Token, not the signature; the HTTP header does not require an Authorization field.

Default interface request frequency limit: 20 times/second/AppId.

Note: This interface requires providing 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 interface: BindQrCodeScanPalm.
VersionYesStringCommon parameter. The value for this interface: 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. Examples

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": "Zhang San",
"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. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Used to query the QR Code Palm Registration user information. This interface only verifies the Token, not the signature; the HTTP header does not require an Authorization field.

Default interface request frequency limit: 20 times/second/AppId.

Note: This interface requires providing 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 interface: DescribeQrCodeScanUser.
VersionYesStringCommon parameter. The value for this interface: 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. Examples

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": "Zhang San",
"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. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Creates a QR Code Palm Registration session, used to generate the QR code or URL for the user to scan and register their palm. It supports three session purposes: QR Code Palm Registration (scan_register), Tap Code Palm Registration (tap_register), and Tap Code Additional Verification (tap_verify). This interface only verifies the Token, not the signature; the HTTP header does not require an Authorization field.

Default interface request frequency limit: 20 times/second/AppId.

Note: This interface requires providing 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 interface: CreateQrCodeScanSession.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
TtlNoStringThe expected session lifetime. Effective in the scan_register/tap_register scenarios; in the tap_verify scenario it is determined by the tenant configuration (this field is not effective). If not specified, scan_register defaults to 1 hour and tap_register defaults to 15 minutes. The maximum is 24 hours. String format, e.g., "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. If not passed or set to scan_register, it is QR Code Palm Registration (default behavior); tap_register is Tap Code Palm Registration; tap_verify is Tap Code Additional Verification.
UserIdNoStringThe user ID. Required in the tap_register/tap_verify scenarios.
UserNameNoStringThe user name. Required in the tap_register scenario; optional in the tap_verify scenario.
PhoneNoNoStringThe phone number. Optional in the Tap Code Palm Registration scenario; when passed, it is validated against the backend user's phone number.

3. Output Parameters

Parameter NameTypeDescription
SessionIdStringThe session ID.
ExpireTimeTimestampThe session expiration time, in RFC3339 string format, e.g., "2025-07-03T09:30:15.500Z".
AppIdStringThe application ID. Subsequent QR Code Palm Registration requests for this session must carry it in the HTTP request header "X-Palm-Appid".
AccessTokenStringThe access token. Subsequent QR Code 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, e.g., "2025-07-03T09:30:15.500Z".
SessionUrlStringThe session URL. In the scan_register scenario, it is a complete H5 link; in the 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. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Used to query the QR Code Palm Registration session status. This interface only verifies the Token, not the signature; the HTTP header does not require an Authorization field.

Default interface request frequency limit: 20 times/second/AppId.

Note: This interface requires providing 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 interface: DescribeQrCodeScanSession.
VersionYesStringCommon parameter. The value for this interface: 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 uses this field to distinguish between QR Code Palm Registration, Tap Code Palm Registration, or Tap Code Additional Verification scenarios.
PhoneNoStringThe phone number (with area code).
RequestIdStringThe unique request ID, returned for each request.

4. Examples

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": "Zhang San",
"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 Interfaces

Send SMS Verification Code

1. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

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

2. Input Parameters

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

3. Output Parameters

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

4. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

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

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: LoginPalmMaSmsCode.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
SmsCodeNoStringThe SMS verification code (verification is required each time; the verification code can be used only once). If SMS capability is not configured during deployment, this field does not need to be passed.
SessionIdNoStringThe SessionId returned when the verification code was sent (one-time use; becomes invalid immediately after a successful verification). If SMS capability is not configured during deployment, this field does not need to be passed.
UserIdYesStringThe user ID.
PhoneNoNoStringThe phone number (with area code), used to validate against the phone number bound to the backend user. If not passed, the validation is skipped.
GrantTypeNoGrantTypeThe grant type.
When calling the open interfaces 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, i.e.:
a. The mobile client uses the SDK to initiate registration or obtain a liveness video upload address;
b. The third-party server needs to apply for an access credential for a specified user, for use by the SDK;
c. In this case, the UserId field must also be passed in.

- client_credential: Applicable to scenarios where an ordinary server calls the open interfaces, i.e.:
a. This type does not bind a specific user and only uses the application-level key to obtain an access credential;
b. The UserId field does not need to be passed in.

If not passed, it defaults to 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, e.g., "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, e.g., "2025-07-03T09:30:15.500Z".
RequestIdStringThe unique request ID, returned for each request.

4. Examples

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 Interfaces (Palm Algorithm Platform)

Create Palm Print

1. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Upload a palm image to create a palm print and return the palm print ID. Two-factor authentication.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: CreatePalm.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
RgbImageYesImageThe RGB image data. See the Image structure.
IrImageYesImageThe IR 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. Examples

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, base64 required",
"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, base64 required",
"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. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Bind a created palm print ID to a specified user. Two-factor authentication.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: BindPalm.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
UserIdYesStringThe unique user identifier.
PalmIdYesStringThe palm print ID.
IsForceNoBooleanWhether to force re-binding.
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. Examples

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"
}
}

Register Palm Print

1. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Upload a palm image to create a palm print and bind it to a specified user. Two-factor authentication.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: RegisterPalm.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
UserIdYesStringThe unique user identifier.
RgbImageYesImageThe RGB image data. See the Image structure.
IrImageYesImageThe IR image data. See the Image structure.
PalmDirectionYesPalmPaasPalmDirectionThe palm direction. See the PalmPaasPalmDirection enum.
IsForceNoBooleanWhether to force re-binding.
AlgorithmStrategyNoAlgorithmStrategyThe algorithm strategy type. See the AlgorithmStrategy enum.
HighSimilarityResolutionStrategyNoHighSimilarityResolutionStrategyThe resolution strategy when a high-similarity user is detected during palm registration. See the HighSimilarityResolutionStrategy 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.
CheckErrorsArray of IntegerThe list of registration check errors. See the CheckError enum. An empty list indicates that registration succeeded; a non-empty list indicates that registration was rejected. Only when HighSimilarityResolutionStrategy = 2 (REJECT_WITH_SIMILAR_USERS) is the rejection reason returned via this field instead of as an error.
HighSimilarityUserIdListArray of StringThe list of high-similarity user IDs. This field has a value when CheckErrors contains 1 (HIGH_SIMILARITY_DETECTED).
RequestIdStringThe unique request ID, returned for each request.

4. Examples

Input Example
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: RegisterPalm
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",
"RgbImage": {
"Data": "... feature data, base64 required",
"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, base64 required",
"ThreePointList": [
{"PointX": 279.19387799999998, "PointY": 283.87393200000002},
{"PointX": 355.835083, "PointY": 282.88299599999999},
{"PointX": 429.38259900000003, "PointY": 321.33651700000001}
],
"ImageType": 2
},
"PalmDirection": 1,
"IsForce": false,
"AlgorithmStrategy": 2,
"HighSimilarityResolutionStrategy": 2
}
Output Example
{
"Response": {
"PalmId": "8db884f9-1fb8-44f5-bdaa-f98fdcb3cd47",
"CheckErrors": [],
"HighSimilarityUserIdList": [],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Output Example (Registration Rejected, High-Similarity Users Returned)
{
"Response": {
"PalmId": "",
"CheckErrors": [1],
"HighSimilarityUserIdList": ["user002", "user003"],
"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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: SearchMobilePalm.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
ProductVersionNoStringThe Palm product algorithm version, provided by the integrated product, e.g., v20250715.
RgbImageYesImageThe RGB image data. See the Image structure.
IrImageNoImageThe IR image data, used to supplement the palm library 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. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: Verify.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
VerifyIdYesStringThe additional verification ID. Source: VerifyInfo.VerifyId returned by SearchMobilePalm.
UserIdYesStringThe unique identifier of the user being additionally 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 additional verification is required. See the VerifyInfo structure.
PalmIdStringThe palm print ID of the user, returned upon successful additional verification.
RequestIdStringThe unique request ID, returned for each request.

4. Examples

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"
}
}
Output Example When Further Additional Verification Is Required
{
"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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

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

3. Output Parameters

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

4. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

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

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

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

3. Output Parameters

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

4. Examples

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. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Synchronize palm print features.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: SynchronizePalmFeature.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
ProductVersionYesStringThe product version to synchronize, e.g., v20250715. This version number must match the version number on the device.
QueryPositionYesStringThe current synchronization position. Pass an empty string for the first time, and use the QueryPosition data from the response the next time.
DeviceIdYesStringThe device ID. Currently used only for troubleshooting.
DisableFeatureNoBooleanWhether to disable returning the feature value. 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, synchronization can continue; other statuses may be added in the future, and the documentation will be updated accordingly if so.
QueryPositionStringThe current synchronization position.
RequestIdStringThe unique request ID, returned for each request.

4. Examples

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, base64 required",
"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. Interface Description

Interface request domain: open.intl.palm.tencent.com

Interface description: Query the product version list.

Default interface request frequency limit: 20 times/second/AppId.

2. Input Parameters

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. The value for this interface: DescribeVersionList.
VersionYesStringCommon parameter. The value for this interface: 2025-07-15.
ProductNameYesStringThe product name. For the Standard edition, fixed at: 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. Examples

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, e.g., "2025-07-03T09:30:15.500Z".
RegisterTimeTimestampThe palm registration completion time, in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
ExpireTimeTimestampThe palm print expiration time, in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".

TimeRule

NameTypeDescription
AllowDateRangeDateRangeThe allowed verification date range. Empty means no limit.
DisallowDateListDate[]The list of disallowed verification dates.
AllowDayOfWeekListDayOfWeek[]The valid days of the week.
AllowTimePeriodListTimePeriod[]The daily allowed access time periods.

DateRange

NameTypeDescription
StartDateDateThe start date.
EndDateDateThe end date.

Date

NameTypeDescription
YearIntegerThe year.
MonthIntegerThe month.
DayIntegerThe day.

TimeOfDay

NameTypeDescription
HoursIntegerThe hour.
MinutesIntegerThe minute.
SecondsIntegerThe second.

TimePeriod

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

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

The sorting condition.

NameTypeDescription
FieldVerificationRecordOrderFieldThe sort field.
OrderSortOrderThe sort direction.

Image

Image.

NameTypeDescription
DataStringThe image data, which requires base64.
ThreePointListArray of PointfThe three-point data.
ImageTypeImageTypeThe image type. See the ImageType enum.
DataDigestStringThe MD5 computed over 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 is true.
UserIdStringThe user ID being additionally verified.
VerifyIdStringThe additional verification ID.
VerifyTypeVerifyTypeThe additional verification type. See the VerifyType enum.
HighSimilarityUserIdListArray of StringReturned when the additional verification type is high-similarity verification, indicating the list of high-similarity user IDs that require additional verification.

PalmFeatureDetail

Palm print feature detail.

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 is automatically incremented. During data synchronization, the system uses a version comparison mechanism: only when the locally stored version number is strictly greater than the version number obtained during synchronization does the local data need to be overwritten.
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, e.g., v20250715.
ProductVersionCreateTimeIntegerThe product version creation time.
StatusIntegerThe Palm product algorithm version type. 1: the currently used version; 2: the version pending upgrade.
OldProductNameStringThe original product name.

CustomFieldValueItem

The user-dimension custom additional verification field value item.

NameTypeDescription
FieldNameStringThe field name, aligned with the FieldName in the tenant's additional verification configuration.
FieldValueStringThe actual value the user filled in for this field (digits only).

Interface-Specific Structures

Palm Print Management Interfaces

PalmPaasPalmInfo

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

Note: This structure is used only for palm print management interfaces, and its field set differs from the PalmInfo used by user management interfaces (no PreRegisterTime, with 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 pre-registration stage (PalmState=2, pending activation); not returned in other states.
MobileRegisterTimeIntegerThe mobile palm registration time.
RegisterTypePalmPaasRegisterTypeThe registration type. See the PalmPaasRegisterType enum.

User Management Interfaces

CreateUserResponsePartialFailureError

The partial failure error information of the Create User interface.

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

The partial failure error information of the Modify User interface.

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) interface.

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) interface.

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, e.g., "2025-07-03T09:30:15.500Z".
PalmRegisterTimeTimestampThe main palm registration time, in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
PalmExpireTimeTimestampThe main palm feature expiration time, in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
UserStateUserStateThe user status.
AccessScopeSummaryAccessScopeSummaryThe access scope summary.
CreatedTimeTimestampThe user creation time, in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampThe user's last update time, in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
DescribeUserListResponseUserTag

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

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

User Tag Management Interfaces

DescribeUserTagListResponseUserTagItem

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

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 (second level), 2=L3 (third level).
ChildrenCountIntegerThe number of direct child tags.
PathNodesArray of UserTagNodeThe complete level 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, e.g., "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampThe last update time, in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
UserTagNode

The user tag level path node structure, used to represent the complete level 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 (second level), 2=L3 (third level).
UserTag

The user tag information structure.

Field NameTypeDescription
UserTagIdStringThe user tag ID.
UserTagNameStringThe user tag name.
PathNodesArray of UserTagNodeThe complete level 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 Structure (DescribeUserTagTree) interface.

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 a top-level tag.
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) interface.

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 rule is 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) interface.

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

Device Management Interfaces

DescribeDeviceListResponseDevice

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

Field NameTypeDescription
DeviceSnStringThe device serial number.
DeviceTypeStringThe device type.
DeviceNameStringThe device name.
HeartbeatTimeTimestampThe device heartbeat time, in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
ModuleHeartbeatTimeTimestampThe module heartbeat time, in RFC3339 format, e.g., "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, e.g., "2025-07-03T09:30:15.500Z".
StatusDeviceStatusThe device's real-time status.
SceneIdStringThe bound scene ID.
SceneNameStringThe bound scene name.
CreatedTimeTimestampThe device creation time, in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampThe last update time, in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".

Scene Management Interfaces

DescribeSceneListResponseSceneItem

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

Field NameTypeDescription
SceneIdStringThe scene ID.
SceneNameStringThe scene name.
SceneGroupIdStringThe scene group ID it belongs to.
SceneGroupNameStringThe scene group name 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, e.g., "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampThe last update time, in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
DescribeSceneGroupListResponseSceneGroupItem

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

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

Verification Record Interfaces

DescribeVerificationRecordListResponseVerificationRecord

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

Field NameTypeDescription
UserIdStringThe user ID
UserNameStringThe user name
VerificationTimeTimestampThe verification time, in RFC3339 format, e.g., "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
SourceVerificationRecordSourceThe verification record source
AccessDeniedBooleanWhether the verification result is denied. Returned only when verification fails (value is true).
ReasonStringThe verification description

Verification Rule Interfaces

DescribeVerifyRuleListResponseVerifyRuleItem

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

Field NameTypeDescription
VerifyRuleIdStringThe globally unique ID of the verification rule.
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, e.g., "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampThe last update time, in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".

Enum Types

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 indicates the status of each 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
cardCard
codeCode

NotifyQrCodeScanEventRequestQrCodeScanEventType

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

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

Enum ValueDescription
qrcode_scan_event_type_unspecifiedEvent type 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_unspecifiedRegistration type unspecified
deviceDevice registration
mobileMobile registration

PalmDirection

The palm print direction.

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

Enum ValueDescription
palm_direction_unspecifiedPalm print direction 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

VerificationRecordSource

The verification record source.

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

Enum ValueDescription
verification_record_source_unspecifiedUnspecified source
deviceReported by the device
mobileReported by the mobile
serverReported by the server
h5Reported by H5
wechatReported by the WeChat Mini Program

DeviceStatus

The device status.

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

Enum ValueDescription
0Device status unspecified
1Online
2Offline

VerificationRecordOrderField

The verification record sort 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 collection: 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 mis-bound
103The user has enabled mobile palm registration, but this user was found during a mobile palm search while 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 edition supports strategies A and B; the Max edition 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: demo experience, on-device recognition of 100 users
2Strategy B: access control and attendance, on-device recognition of 10k users
3Strategy C: eKYC, pure cloud recognition of 1M users
4Strategy D: eKYC, hybrid device-cloud recognition of 1M users

HighSimilarityResolutionStrategy

The resolution strategy when a high-similarity user is detected during palm registration.

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

Enum ValueDescription
0Unspecified. Default behavior: reject the registration directly and return an error
1Reject the registration and return an error
2Reject the registration without returning an error, and return the list of high-similarity user IDs in the response for the caller to decide

CheckError

The registration check error code.

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

Enum ValueDescription
0Unspecified
1High-similarity user detected

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) interface.

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; defaults 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 also be passed in.
client_credentialApplicable to scenarios where an ordinary server calls the open interfaces. The UserId field does not need to be passed in. This type must be used when calling the open interfaces 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
pendingAwaiting scan
scannedScanned, awaiting information entry
successQR Code Palm Registration succeeded
failedQR Code Palm Registration failed
expiredThe QR Code Palm Registration 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 all fields except 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_registerQR Code Palm Registration: the device generates a QR code → the user scans it → palm registration and binding
tap_registerTap Code Palm Registration: the app generates a QR code (carrying user information) → the device scans it → palm registration and binding
tap_verifyTap Code Additional Verification: the app generates a QR code (carrying user information) → the device scans it → identity verification

Common Structures

Error

NameTypeDescription
CodeStringThe error code.
MessageStringThe error message.

Error Codes

Function Description

If the Error field is present in the return result, it indicates that the API interface 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"
}
}

Code in Error indicates the error code, and Message indicates the specific information for that error.

Common Error Codes

Error CodeDescription
InvalidParameterParameter error (including errors in parameter format, type, etc.)
InvalidParameterValueInvalid parameter value
MissingParameterMissing parameter error; a required parameter was not filled in
UnknownParameterUnknown parameter error; passing extra undefined parameters will cause an error
AuthFailureCAM signature/authentication error
InternalErrorInternal error. The business must uniformly use InternalError or the InternalError.xxx form to indicate an internal error.
InvalidActionThe interface does not exist
UnauthorizedOperationUnauthorized operation
RequestLimitExceededThe number of requests exceeded the frequency limit
NoSuchVersionThe interface version does not exist
UnsupportedRegionThe interface does not support the specified region
UnsupportedOperationThe operation is not supported
ResourceNotFoundThe resource does not exist
LimitExceededThe quota limit was exceeded
ResourceUnavailableThe resource is unavailable
ResourceInsufficientInsufficient resources
ResourceExhaustedInsufficient resource quota or rate limit reached
FailedOperationThe operation failed
ResourceInUseThe resource is in use
DryRunOperationDryRun operation; indicates that the request would have succeeded, but the DryRun parameter was passed
ResourcesSoldOutThe resources are sold out
OperationDeniedThe operation was 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 expected lifetime of the QR Code Palm Registration session 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 QR Code Palm Registration QR code has expired
FailedOperation.QrCodeFinishedThe QR Code Palm Registration QR code has already been used
FailedOperation.QrCodeStatusInvalidThe QR Code 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 it is 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 obtain 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 interface access token
InternalError.CreateDeviceAccessTokenFailedFailed to create the open interface device access token
InternalError.DescribeSecretKeyFailedFailed to query the open interface 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 palm ID 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 palm ID already exists
FailedOperation.HighSimilarityA high-similarity palm exists
FailedOperation.PalmCapacityFullThe user's palm print search hot library capacity has reached its 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.SmsResendTooFrequentThe SMS verification code is being sent too frequently
ResourceExhausted.SmsMaxVerifyAttemptsToo many verification code attempts
FailedOperation.SmsSendFailedFailed to send the SMS