Skip to main content

Tencent Palm Server-Side API Reference

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

Version History​

VersionRelease DateChanges
v2.5.02026-09-22New APIs
• Added the DescribeDeviceEmergencyStatus (Query Device Emergency Status) API, which returns the emergency status of the current tenant and of each device
• Added the SendEmergencyCommand (Send Emergency Control Command) API, which supports issuing block (block all) / open (open all) / reset_block (restore block all) / reset_open (restore open all) commands to all devices or to a specified SN list

API parameter changes
• The LoginPalmMaSmsCode API response adds the CheckError (verification error) and UserIdList (list of user IDs, returned only when GrantType is client_credential_user) fields

New enums and data structures
• Added the EmergencyStatus enum (emergency status, int32 serialization)
• Added the EmergencyCommandScope enum (emergency command scope, int32 serialization)
• Added the SendEmergencyCommandRequestEmergencyCommandType enum (embedded in SendEmergencyCommandRequest, emergency command type: block all/open all/restore block all/restore open all, int32 serialization)
• Added the LoginPalmMaSmsCodeResponseCheckError enum (login verification error)
• Added the DescribeDeviceEmergencyStatusResponseDeviceEmergencyStatus and SendEmergencyCommandResponseFailedDevice data structures
v2.4.02026-08-12New APIs
• Added the RegisterPalm (Register Palm Print) API, which uploads a palm image to create a palm print and bind it to a specified user, with two-factor authentication

API parameter changes
• The IrImage parameter description of the CreatePalm API changed from "infrared image data" to "IR image data"
• The IrImage parameter description of the SearchMobilePalm API changed from "infrared image data" to "IR image data"
• In the CreateUser and ModifyUser APIs, the CustomFieldValue parameter is deprecated and replaced by the new CustomFieldValueList parameter (Array of CustomFieldValueItem), supporting multiple custom additional verification field configurations
• In the DescribeUser API response, the CustomFieldValue field is deprecated and replaced by the new CustomFieldValues field (Array of CustomFieldValueItem)
• The DescribeUserList API adds the SkipTotalCount (skip total count) and SceneId (scene ID filter) input parameters, and the response adds the HasMore field
• The DescribeVerificationRecordList API adds the Source (verification record source filter) and SkipTotalCount (skip total count) input parameters, the response adds the HasMore field, and the VerificationRecord structure adds the Source, AccessDenied (verification result), and Reason (verification description) fields
• The CreateVerificationRecord API 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 (policy for handling high-similarity users detected during palm registration: reject_with_error/reject_with_similar_users)
• Added the RegisterPalmResponseCheckError enum (registration check error code: high_similarity_detected)
• Added the VerificationRecordSource enum (verification record source: device/mobile/server/h5/wechat); the enum value web is renamed to h5 and weixin is renamed to wechat, with descriptions streamlined
• Added the CustomFieldValueItem common data structure (custom additional verification field value item)
v2.3.02026-07-13New APIs
• Added the DescribeUserAccessScope (Query User Access Scope) and DescribeUserAccessScopeSummary (Query User Access Scope Summary) APIs
• Added the DescribeUserTagTree (Query User Tag Tree Structure) API

API availability
• The SendPalmMaSmsCode (Send SMS Verification Code) and LoginPalmMaSmsCode (SMS Verification Code Login) APIs changed from internal to publicly available, and a new "PalmMa Login APIs" category was added
• The CreateQrCodeScanSession (Create QR Code Palm Registration Session) and DescribeQrCodeScanSession (Query QR Code Palm Registration Session Status) APIs changed from internal to publicly available

API parameter changes
• The LoginPalmMaSmsCode API adds the PhoneNo (phone number verification) and GrantType (Grant Type) parameters; SmsCode and SessionId are now optional
• The DescribeQrCodeScanSession API response adds the PhoneNo (phone number) field
• The DescribeQrCodeScanUser API response adds the PhoneNo (phone number) field
• The DescribeUserTag API response adds the ParentTagId (parent tag ID), Level (hierarchy depth), ChildrenCount (number of direct child tags), UserCount (number of users associated with the tag), and PathNodes (hierarchy path) fields
• In the DescribeUserTagList API response, UserTagItem 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 hierarchy path node)
• Added the UserTag common data structure (user tag information, including the PathNodes hierarchy 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 serialization of the DeviceStatus enum changed from string to integer (int32)
v2.2.02026-06-17Version number upgrade; no API changes
v2.1.02026-05-07New APIs
• Added 6 list query APIs: DescribeUserList (Query User Information List), DescribeUserTagList (Query User Tag List), DescribeDeviceList (Query Device List), DescribeSceneList (Query Scene List), DescribeSceneGroupList (Query Scene Group List), and DescribeVerifyRuleList (Query Verification Rule List)

API parameter changes
• The CreateUser and ModifyUser APIs add the CustomFieldValue parameter (custom additional verification field value)
• The DescribeUser API response adds the CustomFieldValue field
• The DescribeUserList API adds the PhoneNo, PhysicalCardNo, and UserTagId filter parameters, and the response adds the CreatedTime and UpdatedTime fields
• The DescribeDeviceList API is publicly available, adds the Status, SceneId, and DeviceType filter parameters, and the response adds the Status, SceneId, SceneName, CreatedTime, and UpdatedTime fields
• The DescribeVerificationRecordList API adds the SceneGroupIds, SceneGroupName, and OrderBy parameters, and the response adds the SceneGroupId and SceneGroupName fields
• The NotifyQrCodeScanEvent API adds the EventType parameter (QR code scan event type)
• In the Verify API, the type of the VerifyResult parameter changed from Integer to the VerifyResult enum (values: 1: success, 2: failure), clarifying the valid Value Range (semantics unchanged; existing 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 sorting field)
• Added the SortOrder enum (sort order: asc/desc)
• Added the QrCodeScanEventType enum (QR code scan event type, used as the value of NotifyQrCodeScanEvent.EventType)
• Added the VerifyResult enum (additional verification result, used as the value of the Verify API's VerifyResult parameter)
• Added the OrderBy common data structure (sorting condition)
v2.0.02026-04-03• Added palm print management APIs (8 APIs: CreatePalm, BindPalm, SearchMobilePalm, Verify, DeletePalm, DescribePalm, SynchronizePalmFeature, DescribeVersionList)
• Added the authentication management API DescribePalmLicense (Query Authorization Information)
• The DescribeUser API output parameters add the UserState (user state) field
• The DescribeUserPalm API output parameters add the UserName (user name), UserState (user state), PalmDirection (primary palm direction), LeftPalm (left palm registration information), and RightPalm (right palm registration information) fields
• The DescribeQrCodeScanUser API output parameters add the UserName (user name), UserState (user state), PalmDirection (primary palm direction), LeftPalm (left palm registration information), and RightPalm (right palm registration information) fields
• The PalmState enum adds the abnormal (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 API output parameters add 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) API
• Device management adds the DescribeDevice (Query Device Details) API
• The CreateScene API adds the SceneId (optional) and ScenarioStrategy (required) parameters
• The ModifyScene API 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 API changed to optional; it defaults to true when not provided
v1.7.02026-01-05• Added user tag management (4 APIs: CreateUserTag, ModifyUserTag, DeleteUserTag, DescribeUserTag)
• User management APIs support tag binding and partial failure (CreateUser and ModifyUser support the UserTagIdList and PartialFailure parameters)
• Added complete documentation for the partial failure mechanism
• Unified API naming conventions (API 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 Palm (PalmAI) leverages Tencent's years of in-depth accumulation in computer vision and biometric identification technology, opening its three core capabilities of palm registration, palm print recognition, and palm print verification to enterprises and developers through Tencent Cloud services. It is committed to helping customers quickly build secure, convenient, and efficient palm print recognition solutions.

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

Glossary​

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

TermDescription
AppIdUnique application identifier used by the Tencent Cloud backend to distinguish between different Palm applications. It is generated automatically when a tenant is created in the Palm console. Data is not shared between different AppIds
RGBColor image.
IRInfrared image.
Three pointsData output after image detection and alignment.
Feature valueData output after an image is input to 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 hot-library search data stored in GPU memory or RAM, and general stored data (including ordinary databases, object storage, file storage, etc.).
Device typeModel identifier of the palm verification device. Current Value Range: M3, M3B, M4, O1, O2.
Module typeModel identifier of the recognition module used by the palm verification device. Current Value Range: 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 APIs
  • User Management APIs
  • User Tag Management APIs
  • User Palm Management APIs
  • Device Management APIs
  • Scene Management APIs
  • Verification Record APIs
  • Verification Rule APIs
  • QR Code Palm Registration APIs
  • PalmMa Login APIs
  • Palm Print Management APIs (Palm Algorithm Platform)

Authentication Management APIs​

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateAccessTokenObtain Access Credentials20
DescribePalmLicenseQuery Authorization Information20

User Management APIs​

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateUserCreate User20
ModifyUserModify User20
DeleteUserDelete User20
DescribeUserQuery User20
DescribeUserListQuery User Information List20
DescribeUserAccessScopeQuery User Access Scope20
DescribeUserAccessScopeSummaryQuery User Access Scope Summary20

User Tag Management APIs​

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateUserTagCreate User Tag20
ModifyUserTagModify User Tag20
DeleteUserTagDelete User Tag20
DescribeUserTagQuery User Tag20
DescribeUserTagListQuery User Tag List20
DescribeUserTagTreeQuery User Tag Tree Structure20

User Palm Management APIs​

Interface nameInterface functionFrequency limit (times/second/AppId)
DeleteUserPalmDelete User Palm Information20
DescribeUserPalmQuery User Palm Information20

Device Management APIs​

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateDeviceCreate Device20
ModifyDeviceModify Device20
DeleteDeviceDelete Device20
DescribeDeviceQuery Device Details20
DescribeDeviceListQuery Device List20
DescribeDeviceEmergencyStatusQuery Device Emergency Status20
SendEmergencyCommandSend Emergency Control Command20

Scene Management APIs​

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateSceneCreate Scene20
ModifySceneModify Scene20
DeleteSceneDelete Scene20
DescribeSceneQuery Scene Details20
DescribeSceneListQuery Scene List20
CreateSceneGroupCreate Scene Group20
ModifySceneGroupModify Scene Group20
DeleteSceneGroupDelete Scene Group20
DescribeSceneGroupListQuery Scene Group List20

Verification Record APIs​

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateVerificationRecordCreate Verification Record20
DescribeVerificationRecordListQuery Verification Record List20
DescribeVerificationRecordQuery Verification Record (Push Only)20

Verification Rule APIs​

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateVerifyRuleCreate Verification Rule20
ModifyVerifyRuleModify Verification Rule20
DeleteVerifyRuleDelete Verification Rule20
DescribeVerifyRuleQuery Verification Rule20
DescribeVerifyRuleListQuery Verification Rule List20
CheckAccessPermissionCheck Access Permission (callback only)20

QR Code Palm Registration APIs​

Interface nameInterface functionFrequency limit (times/second/AppId)
CreateQrCodeScanSessionCreate QR Code Palm Registration Session20
NotifyQrCodeScanEventQR Code Scan Event Notification20
BindQrCodeScanPalmQR Code Palm Print Binding20
DescribeQrCodeScanSessionQuery QR Code Palm Registration Session Status20
DescribeQrCodeScanUserQuery QR Code Palm Registration User Information20

PalmMa Login APIs​

Interface nameInterface functionFrequency limit (times/second/AppId)
SendPalmMaSmsCodeSend SMS Verification Code20
LoginPalmMaSmsCodeSMS Verification Code Login20

Palm Print Management APIs (Palm Algorithm Platform)​

Interface nameInterface functionFrequency limit (times/second/AppId)
CreatePalmCreate Palm Print20
BindPalmBind Palm Print20
RegisterPalmRegister Palm Print20
SearchMobilePalmMobile Palm Registration Search20
VerifyUser Additional Verification20
DeletePalmDelete Palm Print20
DescribePalmQuery Palm Print20
SynchronizePalmFeatureSynchronize Palm Print Features20
DescribeVersionListQuery Product Version List20

How to Call​

Basic Calling Flow​

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

Description of the two authentication methods:

Authentication methodApplicable scenariosRequest headers
Signature + TokenMost management APIs (users, devices, scenes, palm prints, etc.)Authorization + X-Palm-Openapi-Token
Token onlyQR Code Palm Registration APIs (NotifyQrCodeScanEvent, BindQrCodeScanPalm, DescribeQrCodeScanSession, DescribeQrCodeScanUser)X-Palm-Openapi-Token only; no Authorization required

Note:

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

Request Structure​

The request structure of the Palm API is as follows:

1. Service Endpoint​

The API supports access from the nearest region. The following domain is recommended:

  • Default access domain (recommended): open.intl.palm.tencent.com (example only; the actual access domain is subject to allocation, and private deployment scenarios are supported)
  • Access from a specific region (extensible if multiple regions are deployed): e.g., open.intl.palm.tencent.com (example only; the actual access domain is subject to allocation)

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

2. Communication Protocol​

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

3. Request Method​

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

4. Character Encoding​

All requests and responses use UTF-8 encoding.

Common Parameters​

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

Parameter NameTypeRequiredDescription
X-TC-ActionStringYesName of the API to call. Example: CreateUser.
X-TC-TimestampIntegerYesCurrent UNIX timestamp in seconds. Example: 1704067200. If it differs from the server time by more than 5 minutes, a signature expiration error will occur.
X-TC-VersionStringYesAPI version, currently fixed at: 2025-07-15.
AuthorizationStringYesSignature information, format: TC3-HMAC-SHA256 Credential=AKIDxxx/Date/service/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=xxx. For details, see the Signature Method section.
X-TC-NonceStringYesRandom string, generally used to prevent replay attacks. It is recommended to generate a new unique random string for each request.
Content-TypeStringYesRequest content type; application/json; charset=utf-8 is recommended.
HostStringYesService endpoint, fixed at open.intl.palm.tencent.com.
X-Palm-AppIdStringYesApplication ID, obtained when applying for security credentials.
The customer needs to apply to Tencent for AppId, SecretId, and SecretKey.
Please keep the above information secure and pass it in API requests as needed
X-Palm-Openapi-TokenStringYesTemporary security credential Token. Before calling Tencent APIs, you must first obtain an access credential through the [Obtain Access Credentials] API (Action: CreateAccessToken). Note that the access credential is time-sensitive and must be re-obtained 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 credentials used in this document are keys, which include a SecretId and a SecretKey.

  • SecretId: Identifies the API caller's identity; it can be simply compared to a username.
  • SecretKey: Verifies the API caller's identity; it can be simply compared to a password.

Users must keep security credentials strictly confidential and avoid disclosure, otherwise their property security will be at risk. If a credential has been disclosed, disable it immediately.

The steps for applying for security credentials are as follows:

  1. Log in to the Tencent Cloud Palm service console.
  2. Go to the console page under System Management | Tenant Management.
  3. On the Tenant Management page, select the current tenant and click [Details] to view 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 transmitted in JSON format.

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

Assume 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 signature calculation process is explained in detail below.

  1. Concatenate the canonical request string

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

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

According to the above rules, the canonical request string obtained in the example is as follows (for clarity, \n newlines 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 in the following pseudocode format:

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

⚠️ Note:

  1. Date must be calculated from the timestamp X-TC-Timestamp, and the time zone must be UTC+0. If the system's local time zone information is added (for example, UTC+8), calls will succeed during the day and evening but will definitely fail in the early morning. Assume the timestamp is 1551113065; the time in UTC+8 is 2019-02-26 00:44:25, but the Date calculated using the UTC+0 date should be 2019-02-25, not 2019-02-26.
  2. Timestamp must be the current system time, and you must ensure that the system time is synchronized with standard time; if they differ by more than five minutes, the call will definitely fail. If the time is not synchronized with standard time for a long period, requests may fail after running for a while, returning a signature expiration error.

According to 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. The pseudocode is as follows:
SecretKey = "********************************"
SecretDate = HMAC_SHA256("TC3" + SecretKey, Date)
SecretService = HMAC_SHA256(SecretDate, Service)
SecretSigning = HMAC_SHA256(SecretService, "tc3_request")

The derived keys SecretDate, SecretService, and SecretSigning are binary data and may contain non-printable characters. Their outputs printed as hexadecimal strings are respectively:
2fbd1f93d8d1aae5c0a4e2df255519752e1e4be521b9edae832930379544679c,
45589385000e5972fe3fb6ca9f07339289dee6e33e0b5bb9022308d69eb15fc9,
a116ccc06739ebac6c1c54514ace4229c98847c5f1ee5abc395eafab262b0246.
Please note that in different programming languages, the parameter order of HMAC library functions may vary; refer to the actual situation. In the pseudocode here, the key parameter comes first and the message parameter data comes second. Standard library functions usually return values in binary format, and may also provide print-friendly hexadecimal return values; the binary format is used here.

FieldDescription
SecretKeyThe original SecretKey, i.e., ********************************.
DateThe Date field information in Credential. In this example, the value is 2025-07-15.
ServiceThe Service field information in Credential. In this example, the value is palm.
  1. Calculate the signature. The pseudocode is as follows:
Signature = HexEncode(HMAC_SHA256(SecretSigning, StringToSign))

The calculated result in this example is f4b012d34bd468efb5cb90cb6c326ed42ec0f7de22accb38350606d95fa6b5db.

  1. Concatenate the Authorization

    Concatenate the Authorization in the following format:

    Authorization =
    Algorithm + ' ' +
    'Credential=' + SecretId + '/' + CredentialScope + ', ' +
    'SignedHeaders=' + SignedHeaders + ', ' +
    'Signature=' + Signature
    FieldDescription
    AlgorithmSignature method, fixed at TC3-HMAC-SHA256
    SecretIdThe SecretId in the key pair, i.e., AKID********************************
    CredentialScopeCredential scope, see above. In this example: 2025-07-15/palm/tc3_request
    SignedHeadersHeader information participating in the signature. In this example, the value is content-type;host;x-palm-appid;x-tc-nonce;x-tc-timestamp
    SignatureSignature value. The calculated result in this example is f4b012d34bd468efb5cb90cb6c326ed42ec0f7de22accb38350606d95fa6b5db

    According to the above rules, the value obtained in the example is:

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

    The final complete call information is as follows:

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

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

Signature Demo (Python)​

The following is a complete signature process demo implemented in Python:


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

# ************* 步骤 1:拼接规范请求串 *************
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)

# ************* 步骤 2:拼接待签名字符串 *************
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)

# ************* 步骤 3:计算签名 *************
# 计算签名摘要函数
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()

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

# 公共参数添加到请求头部
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 when the server receives the request must not exceed five minutes.
AuthFailure.SecretIdNotFoundThe key does not exist. Please check in the console whether the key is disabled, or whether characters were missed or added when copying.
AuthFailure.SignatureFailureSignature error. This may be caused by a signature calculation error, a mismatch between the signature and the actually sent content, 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 non-JSON formats will be noted in the documentation. When JSON data is returned, the maximum limit is 50 MB. If the returned data exceeds the maximum limit, the request will fail and an internal error will be returned. It is recommended to control the amount of returned data using the filtering or pagination features in the API documentation.

Note: As long as the request is processed normally by the server, the HTTP Status Code of the response is 200. For example, even for errors such as signature failure, the HTTP Status Code is still 200; the specific error information is reflected in the response body.

Successful Response​

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

{
"Response": {
"UserId": "user123456",
"UserName": "张三",
"PhoneNo": "(+86)13800138000",
"PhysicalCardNo": "CARD001",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
  • Response and its internal RequestId are fixed fields and 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 API.

Error Response​

A failed call returns the following:

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

Common Error Codes​

If the Error field exists in the return result, the API call failed. The Error.Code field is the error code. Error codes that may occur in 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 parameters and output parameters support the following data types:

TypeDescriptionExample
StringString"user123456"
IntegerInteger, up to an unsigned 64-bit integer. It is recommended to use the maximum integer definition for 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 use a standard library for parsing"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 processing mechanism that allows successful operations in a batch to still be executed even if some operations fail. This mechanism improves the fault tolerance and efficiency of batch operations.

What Is Partial Failure​

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

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

After enabling the partial failure mechanism:

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

How to Use Partial Failure​

APIs that support partial failure provide the PartialFailure parameter:

Request parameters:

Parameter NameRequiredTypeDescription
PartialFailureNoBooleanWhether to allow partial failure. Set to true to enable the partial failure mechanism; the default is false.

Response fields:

When partial failure is enabled and there are failed items, the response includes the PartialFailureError field, detailing the reasons for the failures:

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

Example Scenarios​

Scenario 1: Create a user and batch bind tags​

Sample Request:

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

Successful Response (no failed items):

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

Partial failure response (failed items exist):

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

In the above example:

  • User user001 was created successfully
  • tag001 and tag002 were bound successfully
  • tag003 does not exist, so the binding failed

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

Best Practices​

  1. Enable partial failure for batch operations

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

    • Even when the result is returned successfully, 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
    • Fix the cause of the failure and resend the request
    • Note: For overwrite operations such as batch binding user tags, you must pass the complete tag list (including previously successful items) when retrying, 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)

APIs Supporting Partial Failure​

The following APIs support the partial failure mechanism:

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

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


Authentication Management APIs​

Obtain Access Credentials​

1. API Description​

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

Interface description: Used to obtain access credentials (AccessToken). The following calling method is only applicable to scenarios where a common server calls the Palm Application Platform open APIs.

Note: This API only requires a signature (Authorization); X-Palm-Openapi-Token does not need to be passed. Before integrating with the Palm Application Platform service, the customer needs to apply to Tencent for AppId, SecretId, and SecretKey. Please keep this information secure and pass it in API requests as needed.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: CreateAccessToken.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
AppIdYesIntegerProduct ID assigned by the system
SecretIdYesStringCustomer's key ID
SecretKeyHashYesStringHash of the customer's key, calculated as: hex.EncodeToString(sha256.Sum256(secretKey))
GrantTypeYesStringGrant Type.
When calling the Palm Application Platform open APIs, you must use client_credential.

Valid values:
- client_credential_user: Applicable to scenarios where a third-party platform integrates the Mobile Palm Registration SDK, that is:
a. The mobile end uses the SDK to initiate registration or obtain the liveness video upload URL;
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 be passed at the same time.

- client_credential: Applicable to scenarios where a common server calls the open APIs, that is:
a. Under this type, no specific user is bound; only the application-level key is used to obtain the access credential;
b. The UserId field does not need to be passed.
UserIdNoStringUser identity ID. When grant_type is "client_credential_user", the UserId field must be passed

3. Output Parameters​

Parameter NameTypeDescription
AccessTokenStringAccess credential, which can be used to access other APIs
ExpiresInIntegerValidity period of the AccessToken in seconds. The token becomes invalid after expiration
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"AppId": 223,
"SecretId": "this is secretId",
"SecretKeyHash": "this is secretKey hash",
"GrantType": "client_credential"
}
Output Example​
{
"Response": {
"AccessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"ExpiresIn": 7200,
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Authorization Information​

1. API Description​

Request endpoint: 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 API request frequency limit: 20 times/second/AppId.

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribePalmLicense.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
AppIdYesIntegerProduct ID assigned by the system.

3. Output Parameters​

Parameter NameTypeDescription
PalmCapacityIntegerPalm database capacity limit, indicating the maximum number of palm prints allowed to be registered under the current license.
PalmUsageIntegerCurrent palm database usage, indicating the number of registered palm prints.
ExpireTimeIntegerLicense expiration time, UTC timestamp in seconds. The service cannot be used after expiration.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"AppId": 223
}
Output Example​
{
"Response": {
"PalmCapacity": 100000,
"PalmUsage": 5000,
"ExpireTime": 1756108800,
"RequestId": "e3b0c442-98fc-1c14-b39f-f75b262b1d0e"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

User Management APIs​

Create User​

1. API Description​

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

Interface description: Used to create a new user and supports setting basic user information.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: CreateUser.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdYesStringUnique user identifier.
UserNameYesStringUser name.
PhoneNoNoStringPhone number (with country code), e.g., "(+86)13800138000". If the country code is not provided, "(+86)" is used by default.
PhysicalCardNoNoStringPhysical card number, a combination of digits and letters.
UserTagIdListNoArray of StringList of user tag IDs.
PartialFailureNoBooleanWhether to allow partial failure.
CustomFieldValueNoStringDeprecated. Use CustomFieldValueList instead.
CustomFieldValueListNoArray of CustomFieldValueItemList of custom additional verification field values. If both CustomFieldValue and CustomFieldValueList are passed, CustomFieldValueList takes precedence.

3. Output Parameters​

Parameter NameTypeDescription
PartialFailureErrorCreateUserResponsePartialFailureErrorPartial failure result. See the CreateUserResponsePartialFailureError structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserId": "user123456",
"UserName": "张三",
"PhoneNo": "(+86)13800138000",
"PhysicalCardNo": "CARD001",
"UserTagIdList": ["tag001", "tag002"],
"PartialFailure": true,
"CustomFieldValueList": [
{"FieldName": "工号", "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": "用户名称为空"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Modify User​

1. API Description​

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

Interface description: Used to modify user information and supports updating basic user information.

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: ModifyUser.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdYesStringUnique user identifier.
UserNameYesStringUser name.
PhoneNoNoStringPhone number (with country code), e.g., "(+86)13800138000". If the country code is not provided, "(+86)" is used by default.
PhysicalCardNoNoStringPhysical card number, a combination of digits and letters.
UserTagIdListNoArray of StringList of user tag IDs.
PartialFailureNoBooleanWhether to allow partial failure.
CustomFieldValueNoStringDeprecated. Use CustomFieldValueList instead.
CustomFieldValueListNoArray of CustomFieldValueItemFull list of custom additional verification field values. If both CustomFieldValue and CustomFieldValueList are passed, CustomFieldValueList takes precedence.

3. Output Parameters​

Parameter NameTypeDescription
PartialFailureErrorModifyUserResponsePartialFailureErrorPartial failure result. See the ModifyUserResponsePartialFailureError structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserId": "user001",
"UserName": "张三",
"PhoneNo": "(+86)13800138000",
"UserTagIdList": ["tag001", "tag002"],
"PartialFailure": true,
"CustomFieldValueList": [
{"FieldName": "工号", "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": "用户不存在或已被删除。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Delete User​

1. API Description​

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

Interface description: Used to delete a specified user. Deleted user data cannot be recovered.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DeleteUser.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdYesStringUnique user identifier.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserId": "user001"
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.UserNotExist",
"Message": "用户不存在或已被删除。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeUser.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdYesStringUnique user identifier.

3. Output Parameters​

Parameter NameTypeDescription
UserIdStringUnique user identifier.
UserNameStringUser name.
PhoneNoStringPhone number (with country code), e.g., "(+86)13800138000". If the country code is not provided, "(+86)" is used by default.
PhysicalCardNoStringPhysical card number, a combination of digits and letters.
UserTagListArray of DescribeUserResponseUserTagUser tag list. See the DescribeUserResponseUserTag structure.
PalmDirectionPalmDirectionPalm direction. See the PalmDirection enum.
LeftPalmPalmInfoLeft palm registration information. See the PalmInfo structure.
RightPalmPalmInfoRight palm registration information. See the PalmInfo structure.
CreateTimeTimestampUser creation time in RFC3339 string format, e.g., "2025-07-03T09:30:15.500Z".
UserStateUserStateUser state. See the UserState enum.
CustomFieldValueStringDeprecated. Use CustomFieldValues instead.
CustomFieldValuesArray of CustomFieldValueItemFull list of custom additional verification field values.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserId": "user001"
}
Output Example​
{
"Response": {
"UserId": "user001",
"UserName": "张三",
"PhoneNo": "(+86)13800138000",
"PhysicalCardNo": "CARD2024A001",
"UserTagList": [
{
"UserTagId": "tag001",
"UserTagName": "研发中心"
},
{
"UserTagId": "tag002",
"UserTagName": "产品中心"
}
],
"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": "工号", "FieldValue": "123456"}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.UserNotExist",
"Message": "未找到该用户信息。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User Information List​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeUserList.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdNoStringUnique user identifier. Fuzzy query is supported.
UserNameNoStringUser name. Fuzzy query is supported.
PhoneNoNoStringPhone number. Exact match.
PhysicalCardNoNoStringPhysical card number. Exact match.
PalmStateNoPalmStatePrimary palm registration status.
UserStateNoUserStateUser state.
UserTagIdNoStringUser tag ID, filters users that have the specified tag.
SceneIdNoStringScene ID, filters users with access permission for that scene.
OffsetNoIntegerOffset. Default: 0.
LimitNoIntegerNumber of results to return. Default: 20; maximum: 100.
SkipTotalCountNoBooleanWhether to skip counting the total. When set to true, TotalCount is not returned (avoiding slow queries); use HasMore instead to determine whether there is a next page.

3. Output Parameters​

Parameter NameTypeDescription
TotalCountIntegerNumber of users that meet the conditions. This field is not returned when the request has SkipTotalCount=true.
UserListArray of DescribeUserListResponseUserUser list. See the DescribeUserListResponseUser structure.
HasMoreBooleanWhether there is more data. When the request has SkipTotalCount=true, use this field to determine whether there is a next page.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserName": "张",
"PalmState": "registered",
"Offset": 0,
"Limit": 10
}
Output Example​
{
"Response": {
"TotalCount": 1,
"UserList": [
{
"UserId": "user001",
"UserName": "张三",
"PhoneNo": "(+86)13800138000",
"PhysicalCardNo": "CARD001",
"UserTagList": [{"UserTagId": "tag001", "UserTagName": "研发中心"}],
"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": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User Access Scope​

1. API Description​

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

Interface description: Queries detailed information about the scenes, devices, and access time periods that a user can access, based on the user ID.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeUserAccessScope.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdYesStringUnique user identifier.
OffsetNoIntegerOffset. Default: 0.
LimitNoIntegerNumber of results to return. Default: 20; maximum: 100.

3. Output Parameters​

Parameter NameTypeDescription
TotalCountIntegerTotal number of scenes that meet the conditions.
AccessScopeListArray of AccessScopeItemAccess scope list (aggregated by scene). See the AccessScopeItem structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserId": "user001",
"Offset": 0,
"Limit": 20
}
Output Example​
{
"Response": {
"TotalCount": 1,
"AccessScopeList": [
{
"SceneId": "scene001",
"SceneName": "大门",
"SceneGroupId": "group001",
"SceneGroupName": "总部园区",
"DeviceSn": "DEV001",
"DeviceName": "前台设备",
"VerifyRules": [
{"VerifyRuleId": "rule001", "VerifyRuleName": "工作日规则"}
]
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User Access Scope Summary​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeUserAccessScopeSummary.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdYesStringUnique user identifier.

3. Output Parameters​

Parameter NameTypeDescription
SummaryAccessScopeSummaryAccess scope summary. See the AccessScopeSummary structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserId": "user001"
}
Output Example​
{
"Response": {
"Summary": {
"SceneGroupCount": 3,
"SceneCount": 8,
"DeviceCount": 15
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

User Tag Management APIs​

Create User Tag​

1. API Description​

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

Interface description: Used to create a new user tag.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: CreateUserTag.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserTagNameYesStringUser tag name.

3. Output Parameters​

Parameter NameTypeDescription
UserTagIdStringUnique user tag identifier.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserTagName": "研发中心"
}
Output Example​
{
"Response": {
"UserTagId": "tag001",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.UserTagNameEmpty",
"Message": "用户标签名称为空"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Modify User Tag​

1. API Description​

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

Interface description: Used to modify user tag information.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: ModifyUserTag.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserTagIdYesStringUnique user tag identifier.
UserTagNameYesStringUser tag name.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserTagId": "tag001",
"UserTagName": "产品中心"
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.UserTagNotExist",
"Message": "用户标签不存在或已被删除。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Delete User Tag​

1. API Description​

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

Interface description: Used to delete a specified user tag. Deleted user tag data cannot be recovered.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DeleteUserTag.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserTagIdYesStringUnique user tag identifier.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserTagId": "tag001"
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.UserTagNotExist",
"Message": "用户标签不存在或已被删除。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User Tag​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeUserTag.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserTagIdYesStringUnique user tag identifier.

3. Output Parameters​

Parameter NameTypeDescription
UserTagIdStringUnique user tag identifier.
UserTagNameStringUser tag name.
ParentTagIdStringParent tag ID. Empty indicates a top-level tag.
LevelIntegerHierarchy depth: 0=L1 (top level), 1=L2 (level 2), 2=L3 (level 3).
ChildrenCountIntegerNumber of direct child tags.
UserCountIntegerNumber of users associated with the tag.
PathNodesArray of UserTagNodeComplete hierarchy path from the root tag to the current tag, returned in parent-to-child order. See the UserTagNode structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserTagId": "tag001"
}
Output Example​
{
"Response": {
"UserTagId": "tag001",
"UserTagName": "研发中心",
"ParentTagId": "",
"Level": 0,
"ChildrenCount": 3,
"UserCount": 50,
"PathNodes": [
{
"UserTagId": "tag001",
"UserTagName": "研发中心",
"Level": 0
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.UserTagNotExist",
"Message": "未找到该用户标签信息。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User Tag List​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeUserTagList.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserTagNameNoStringTag name. Fuzzy search is supported.
OffsetNoIntegerOffset. Default: 0.
LimitNoIntegerNumber of results to return. Default: 20; maximum: 100.

3. Output Parameters​

Parameter NameTypeDescription
TotalCountIntegerTotal number of tags that meet the conditions.
UserTagListArray of DescribeUserTagListResponseUserTagItemTag information list. See the DescribeUserTagListResponseUserTagItem structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserTagName": "研发",
"Offset": 0,
"Limit": 20
}
Output Example​
{
"Response": {
"TotalCount": 1,
"UserTagList": [
{
"UserTagId": "tag001",
"UserTagName": "研发中心",
"UserCount": 50,
"ParentTagId": "",
"Level": 0,
"ChildrenCount": 3,
"PathNodes": [
{
"UserTagId": "tag001",
"UserTagName": "研发中心",
"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": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User Tag Tree Structure​

1. API Description​

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

Interface description: Queries the user tag tree structure and returns the tag hierarchy.

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

2. Input Parameters​

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

3. Output Parameters​

Parameter NameTypeDescription
TreeArray of UserTagTreeNodeTag tree node list. See the UserTagTreeNode structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"RootTagId": ""
}
Output Example​
{
"Response": {
"Tree": [
{
"UserTagId": "tag001",
"UserTagName": "研发部",
"UserCount": 50,
"Level": 0,
"ParentTagId": "",
"Children": [
{
"UserTagId": "tag002",
"UserTagName": "前端组",
"UserCount": 20,
"Level": 1,
"ParentTagId": "tag001",
"Children": []
}
]
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

User Palm Management APIs​

Delete User Palm Information​

1. API Description​

Request endpoint: 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 API request frequency limit: 20 times/second/AppId.

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DeleteUserPalm.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdYesStringUnique user identifier.
PalmDirectionListNoArray of PalmDirectionPalm direction list. If not passed, both palms are deleted.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserId": "user001",
"PalmDirectionList": ["left", "right"]
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.UserNotExist",
"Message": "用户手掌信息不存在或已被删除。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query User Palm Information​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeUserPalm.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdYesStringUnique user identifier.

3. Output Parameters​

Parameter NameTypeDescription
UserIdStringUnique user identifier.
PalmStatePalmStatePrimary palm registration status.
UserNameStringUser name.
UserStateUserStateUser state. See the UserState enum.
PalmDirectionPalmDirectionPrimary palm direction. See the PalmDirection enum.
LeftPalmPalmInfoLeft palm registration information. See the PalmInfo structure.
RightPalmPalmInfoRight palm registration information. See the PalmInfo structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserId": "user001"
}
Output Example​
{
"Response": {
"UserId": "user001",
"PalmState": "registered",
"UserName": "张三",
"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": "未找到该用户手掌信息。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Device Management APIs​

Create Device​

1. API Description​

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

Interface description: Used to create a new device and supports setting basic device information.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: CreateDevice.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
DeviceSnYesStringDevice serial number.
DeviceNameYesStringDevice name.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"DeviceSn": "device001",
"DeviceName": "深圳南山门禁1号"
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.DeviceSnEmpty",
"Message": "设备SN为空"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Modify Device​

1. API Description​

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

Interface description: Used to modify device information and supports updating basic device information.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: ModifyDevice.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
DeviceSnYesStringDevice serial number.
DeviceNameYesStringDevice name.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"DeviceSn": "device001",
"DeviceName": "深圳南山门禁1号(已更新)"
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.DeviceNotExist",
"Message": "设备不存在或已被删除。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Delete Device​

1. API Description​

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

Interface description: Used to delete a specified device. Deleted device data cannot be recovered.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DeleteDevice.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
DeviceSnYesStringDevice serial number.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"DeviceSn": "device001"
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.DeviceNotExist",
"Message": "设备不存在或已被删除。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Device Details​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeDevice.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
DeviceSnYesStringDevice serial number.

3. Output Parameters​

Parameter NameTypeDescription
DeviceSnStringDevice SN.
DeviceNameStringAssociated device name.
DeviceTypeStringDevice type.
ModuleTypeStringModule type.
ModuleExpireTimeTimestampModule validity period in RFC3339 string format, e.g., "2025-07-03T09:30:15.500Z".
AppVersionStringApplication version.
ModuleVersionStringModule version.
SystemVersionStringSystem version.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"DeviceSn": "device001"
}
Output Example​
{
"Response": {
"DeviceSn": "device001",
"DeviceName": "深圳南山门禁设备",
"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": "设备不存在或已被删除。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Device List​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeDeviceList.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
DeviceSnNoStringDevice serial number. Exact match.
DeviceNameNoStringDevice name. Fuzzy search is supported.
StatusNoDeviceStatusDevice status filter.
SceneIdNoStringScene ID, filters devices bound to the specified scene.
DeviceTypeNoStringDevice type. For valid values, see the Glossary.
OffsetNoIntegerOffset. Default: 0.
LimitNoIntegerNumber of results to return. Default: 20; maximum: 100.

3. Output Parameters​

Parameter NameTypeDescription
TotalCountIntegerTotal number of devices that meet the conditions.
DeviceListArray of DescribeDeviceListResponseDeviceDevice list. See the DescribeDeviceListResponseDevice structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"DeviceName": "门禁",
"Status": "online",
"Offset": 0,
"Limit": 10
}
Output Example​
{
"Response": {
"TotalCount": 1,
"DeviceList": [
{
"DeviceSn": "SN001",
"DeviceType": "M4",
"DeviceName": "深圳南山门禁设备",
"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": "深圳南山门禁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": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Device Emergency Status​

1. API Description​

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

Interface description: Used to query the emergency status of devices. The input is a list of device SNs (all SNs must belong to the same tenant AppId). It returns the emergency status of the current tenant and each device. When the SN list is empty, only devices in the emergency state are returned.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeDeviceEmergencyStatus.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
DeviceSnListNoArray of StringDevice SN list. If not empty, the emergency status of the corresponding devices is queried by exact SN match; all SNs must belong to the same tenant AppId, with a maximum of 100. If empty, all devices in the emergency state under the current tenant are returned with pagination.
OffsetNoIntegerOffset. Default: 0. Takes effect only when DeviceSnList is empty.
LimitNoIntegerNumber of results to return. Default: 20; maximum: 100. Takes effect only when DeviceSnList is empty.

3. Output Parameters​

Parameter NameTypeDescription
TenantEmergencyStatusEmergencyStatusEmergency status of the current tenant. See the EmergencyStatus enum.
DeviceEmergencyStatusListArray of DescribeDeviceEmergencyStatusResponseDeviceEmergencyStatusEmergency status list of each device. See the DescribeDeviceEmergencyStatusResponseDeviceEmergencyStatus structure.
TotalCountIntegerTotal number of devices that meet the conditions.
RequestIdStringUnique request ID, returned for every request.

4. Example​

Input Example​
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: DescribeDeviceEmergencyStatus
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

{
"DeviceSnList": [
"SN001",
"SN002"
]
}
Output Example​
{
"Response": {
"TenantEmergencyStatus": 0,
"DeviceEmergencyStatusList": [
{
"DeviceSn": "SN001",
"EmergencyStatus": 1
},
{
"DeviceSn": "SN002",
"EmergencyStatus": 2
}
],
"TotalCount": 2,
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Send Emergency Control Command​

1. API Description​

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

Interface description: Used to issue emergency control commands. Supports issuing block (block all) / open (open all) / reset_block (restore block all) / reset_open (restore open all) commands to all devices or to a specified SN list.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: SendEmergencyCommand.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
CommandTypeYesSendEmergencyCommandRequestEmergencyCommandTypeCommand type. See the SendEmergencyCommandRequestEmergencyCommandType enum.
ScopeYesEmergencyCommandScopeEffective scope. See the EmergencyCommandScope enum.
DeviceSnListNoArray of StringDevice SN list. Required only when Scope is 2 (specified SN list). All SNs must belong to the same tenant AppId.
ReasonYesStringOperation reason.

3. Output Parameters​

Parameter NameTypeDescription
FailedDeviceListArray of SendEmergencyCommandResponseFailedDeviceList of devices for which the command failed to be issued. See the SendEmergencyCommandResponseFailedDevice structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

Input Example​
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: SendEmergencyCommand
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

{
"CommandType": 1,
"Scope": 2,
"DeviceSnList": [
"SN001",
"SN002"
],
"Reason": "应急演练"
}
Output Example​
{
"Response": {
"FailedDeviceList": [
{
"DeviceSn": "SN002",
"ErrorMessage": "设备离线"
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Scene Management APIs​

Create Scene​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: CreateScene.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
SceneNameYesStringScene name.
SceneGroupIdYesStringScene group ID.
DeviceSnNoStringDevice serial number.
VerifyRuleIdListNoArray of StringList of verification rule IDs.
SceneIdNoStringScene ID (optional; automatically generated if not passed).
ScenarioStrategyYesScenarioStrategyScene strategy. See the ScenarioStrategy enum.

3. Output Parameters​

Parameter NameTypeDescription
SceneIdStringUnique scene identifier.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"SceneName": "深圳南山门禁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": "场景名称不能为空。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Modify Scene​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: ModifyScene.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
SceneIdYesStringScene ID.
SceneNameYesStringScene name.
DeviceSnNoStringDevice serial number.
VerifyRuleIdListNoArray of StringList of verification rule IDs.
ScenarioStrategyYesScenarioStrategyScene strategy. See the ScenarioStrategy enum.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"SceneId": "scene001",
"SceneName": "深圳南山门禁1号(已更新)",
"DeviceSn": "device002",
"VerifyRuleIdList": ["verifyrule001"],
"ScenarioStrategy": "AccessOnDeviceRecognition50k"
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.SceneNotExist",
"Message": "场景不存在或已被删除。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Delete Scene​

1. API Description​

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

Interface description: Used to delete a specified scene. Deleted scene data cannot be recovered.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DeleteScene.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
SceneIdYesStringScene ID.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"SceneId": "scene001"
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.SceneNotExist",
"Message": "场景不存在或已被删除。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Scene Details​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeScene.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
SceneIdYesStringScene ID.

3. Output Parameters​

Parameter NameTypeDescription
SceneIdStringScene ID.
SceneNameStringScene name.
SceneGroupIdStringScene group ID.
SceneGroupNameStringScene group name.
DeviceSnStringAssociated device SN.
DeviceNameStringAssociated device name.
ScenarioStrategyScenarioStrategyScene strategy. See the ScenarioStrategy enum.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"SceneId": "scene001"
}
Output Example​
{
"Response": {
"SceneId": "scene001",
"SceneName": "深圳南山门禁1号",
"SceneGroupId": "scenegroup001",
"SceneGroupName": "深圳南山区域",
"DeviceSn": "device001",
"DeviceName": "深圳南山门禁设备",
"ScenarioStrategy": "AccessOnDeviceRecognition50k",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.SceneNotExist",
"Message": "场景不存在或已被删除。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Create Scene Group​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: CreateSceneGroup.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
SceneGroupNameYesStringScene group name.
ParentSceneGroupIdYesStringParent scene group ID.

3. Output Parameters​

Parameter NameTypeDescription
SceneGroupIdStringUnique scene group identifier.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"SceneGroupName": "深圳南山区域",
"ParentSceneGroupId": "scene_group_root"
}
Output Example​
{
"Response": {
"SceneGroupId": "scenegroup001",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.SceneGroupNameEmpty",
"Message": "场景组名称不能为空。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Modify Scene Group​

1. API Description​

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

Interface description: Used to modify scene group information and supports updating basic scene group information.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: ModifySceneGroup.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
SceneGroupIdYesStringScene group ID.
SceneGroupNameYesStringScene group name.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"SceneGroupId": "scenegroup001",
"SceneGroupName": "深圳南山区域(已更新)"
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.SceneGroupNotExist",
"Message": "场景组不存在或已被删除。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Delete Scene Group​

1. API Description​

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

Interface description: Used to delete a specified scene group. Deleted scene group data cannot be recovered.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DeleteSceneGroup.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
SceneGroupIdYesStringScene group ID.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"SceneGroupId": "scenegroup001"
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.SceneGroupNotExist",
"Message": "场景组不存在或已被删除。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Scene List​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeSceneList.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
SceneIdListNoArray of StringScene ID list. Exact match; batch query is supported.
SceneNameNoStringScene name. Fuzzy search is supported.
SceneGroupIdNoStringScene group ID, filters scenes belonging to the specified scene group.
DeviceSnNoStringDevice serial number. Exact match.
VerifyRuleIdNoStringVerification rule ID, filters scenes bound to the specified rule.
OffsetNoIntegerOffset. Default: 0.
LimitNoIntegerNumber of results to return. Default: 20; maximum: 100.

3. Output Parameters​

Parameter NameTypeDescription
TotalCountIntegerTotal number of scenes that meet the conditions.
SceneListArray of DescribeSceneListResponseSceneItemScene information list. See the DescribeSceneListResponseSceneItem structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"SceneName": "门禁",
"Offset": 0,
"Limit": 20
}
Output Example​
{
"Response": {
"TotalCount": 1,
"SceneList": [
{
"SceneId": "scene001",
"SceneName": "深圳南山门禁1号",
"SceneGroupId": "sg001",
"SceneGroupName": "深圳南山区域",
"DeviceSn": "SN001",
"DeviceName": "深圳南山门禁设备",
"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": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Scene Group List​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeSceneGroupList.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
SceneGroupIdListNoArray of StringScene group ID list. Exact match; batch query is supported.
SceneGroupNameNoStringScene group name. Fuzzy search is supported.
ParentSceneGroupIdNoStringParent scene group ID. When passed, only the direct child scene groups under that parent are returned; when not passed, all scene groups are returned.
OffsetNoIntegerOffset. Default: 0.
LimitNoIntegerNumber of results to return. Default: 20; maximum: 100.

3. Output Parameters​

Parameter NameTypeDescription
TotalCountIntegerTotal number of scene groups that meet the conditions.
SceneGroupListArray of DescribeSceneGroupListResponseSceneGroupItemScene group information list. See the DescribeSceneGroupListResponseSceneGroupItem structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"ParentSceneGroupId": "sg_root",
"Offset": 0,
"Limit": 20
}
Output Example​
{
"Response": {
"TotalCount": 1,
"SceneGroupList": [
{
"SceneGroupId": "sg001",
"SceneGroupName": "深圳南山区域",
"ParentSceneGroupId": "sg_root",
"ParentSceneGroupName": "全部场景组",
"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": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Verification Record APIs​

Create Verification Record​

1. API Description​

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

Interface description: Used to create a verification record.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: CreateVerificationRecord.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdYesStringUser ID.
VerificationTimeYesTimestampVerification time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
VerificationMediumYesVerificationMediumVerification medium.
DeviceSnYesStringDevice SN.
VerifierIdNoStringVerifier ID.
VerifierNameNoStringVerifier name.
SourceNoVerificationRecordSourceVerification record source. If not passed, it defaults to device-side reporting.
AccessDeniedNoBooleanWhether the verification result is rejected. Returned (with the value true) only when verification fails.
ReasonNoStringVerification description.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserId": "user001",
"VerificationTime": "2024-07-15T09:30:15.500Z",
"VerificationMedium": "palm",
"DeviceSn": "device001",
"VerifierId": "verifier001",
"VerifierName": "李四",
"Source": "device"
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.UserIdEmpty",
"Message": "用户ID不能为空。"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Verification Record List​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeVerificationRecordList.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdNoStringUser ID.
UserNameNoStringUser name.
VerificationMediumNoVerificationMediumVerification medium.
DeviceSnNoStringDevice SN.
SceneIdNoStringScene ID.
StartTimeNoTimestampVerification start time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
EndTimeNoTimestampVerification end time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
SceneGroupIdsNoArray of StringScene group ID list. Exact match (including expansion of child scene groups).
SceneGroupNameNoStringScene group name. Fuzzy search.
OffsetNoIntegerOffset. Default: 0.
LimitNoIntegerNumber of results to return. Default: 20; maximum: 100.
OrderByNoOrderBySorting condition. See the OrderBy structure.
SourceNoVerificationRecordSourceVerification record source filter (optional).
SkipTotalCountNoBooleanWhether to skip counting the total. When set to true, TotalCount is not returned (avoiding slow queries); use HasMore instead to determine whether there is a next page.

3. Output Parameters​

Parameter NameTypeDescription
TotalCountIntegerNumber of verification records that meet the conditions. This field is not returned when the request has SkipTotalCount=true.
VerificationRecordListArray of DescribeVerificationRecordListResponseVerificationRecordVerification record list. See the DescribeVerificationRecordListResponseVerificationRecord structure.
HasMoreBooleanWhether there is more data. When the request has SkipTotalCount=true, use this field to determine whether there is a next page.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserId": "user001",
"UserName": "张三",
"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": "张三",
"VerificationTime": "2024-06-10T09:15:00+08:00",
"VerificationMedium": "palm",
"DeviceSn": "device001",
"SceneId": "scene001",
"SceneName": "深圳南山门禁1号",
"VerifierId": "verifier001",
"VerifierName": "李四",
"Source": "device",
"Reason": ""
},
{
"UserId": "user001",
"UserName": "张三",
"VerificationTime": "2024-06-11T18:30:00+08:00",
"VerificationMedium": "palm",
"DeviceSn": "device002",
"SceneId": "scene002",
"SceneName": "深圳南山门禁2号",
"VerifierId": "verifier002",
"VerifierName": "王五",
"Source": "device",
"AccessDenied": true,
"Reason": "不在通行时间段内"
}
],
"HasMore": false,
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.FiltersLimitExceed",
"Message": "过滤器个数超过限制"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Verification Record (Push Only)​

1. API Description​

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

Interface description: Used to receive verification record information pushed by the open platform. This API only supports push and does not support active pulling.

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

2. Push Content (Parameter Structure)​

Parameter NameTypeDescription
UserIdStringUser ID
UserNameStringUser name
VerificationTimeTimestampVerification time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
VerificationMediumVerificationMediumVerification medium
DeviceSnStringDevice SN
SceneIdStringScene ID
SceneNameStringScene name
VerifierIdStringVerifier ID
VerifierNameStringVerifier name
AccessDeniedBooleanWhether the verification result is rejected. false indicates successful verification; true indicates failed verification
ReasonStringVerification description
RequestIdStringUnique request ID

3. Push Example​

POST / HTTP/1.1
Host: <客户推送地址域名>
Content-Type: application/json; charset=utf-8
X-TC-Action: CreateVerificationRecord

{
"UserId": "user001",
"UserName": "张三",
"VerificationTime": "2024-07-15T09:30:15.500Z",
"VerificationMedium": "palm",
"DeviceSn": "device001",
"SceneId": "scene001",
"SceneName": "深圳南山门禁1号",
"VerifierId": "verifier001",
"VerifierName": "李四",
"AccessDenied": false,
"Reason": "",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}

After receiving a push, the customer only needs to return HTTP 200 OK; no business data needs to be returned.


Verification Rule APIs​

Create Verification Rule​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: CreateVerifyRule.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
VerifyRuleNameYesStringVerification rule name.
EnableTimeRuleYesBooleanWhether to enable the time rule. false means disabled; true means enabled.
TimeRuleNoTimeRuleTime rule. Required when the time rule is enabled. See the TimeRule structure.
EnableUserRuleYesBooleanWhether to enable the user rule. false means all users; true means specified users.
UserRuleNoUserRuleUser rule. Required when the user rule is enabled. See the UserRule structure.
EnableWebhookRuleNoBooleanWhether to enable the webhook rule. Optional; defaults to true when not passed.
BindSceneIdListNoArray of StringList of bound scene IDs. Multiple scenes can be bound.

3. Output Parameters​

Parameter NameTypeDescription
VerifyRuleIdStringVerification rule ID.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"VerifyRuleName": "工作日早晚高峰",
"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": "研发中心"}
],
"UserInfos": [
{"UserId": "user001", "UserName": "张三"}
]
},
"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": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Modify Verification Rule​

1. API Description​

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

Interface description: Used to modify existing verification rule information.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: ModifyVerifyRule.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
VerifyRuleIdYesStringGlobally unique verification rule ID.
VerifyRuleNameYesStringVerification rule name.
EnableTimeRuleYesBooleanWhether to enable the time rule.
TimeRuleNoTimeRuleTime rule. See the TimeRule structure.
EnableUserRuleYesBooleanWhether to enable the user rule.
UserRuleNoUserRuleUser rule. See the UserRule structure.
EnableWebhookRuleYesBooleanWhether to enable the webhook rule.
BindSceneIdListNoArray of StringList of bound scene IDs.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"VerifyRuleId": "vr_20250715001",
"VerifyRuleName": "工作日高峰与中午",
"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": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Delete Verification Rule​

1. API Description​

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

Interface description: Used to delete a specified verification rule.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DeleteVerifyRule.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
VerifyRuleIdYesStringVerification rule ID.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"VerifyRuleId": "vr_20250715001"
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Verification Rule​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeVerifyRule.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
VerifyRuleIdYesStringVerification rule ID.

3. Output Parameters​

Parameter NameTypeDescription
VerifyRuleIdStringVerification rule ID.
VerifyRuleNameStringVerification rule name.
EnableTimeRuleBooleanWhether to enable the time rule.
TimeRuleTimeRuleTime rule. See the TimeRule structure.
EnableUserRuleBooleanWhether to enable the user rule.
UserRuleUserRuleUser rule. See the UserRule structure.
EnableWebhookRuleBooleanWhether to enable the webhook rule.
BindSceneIdListArray of StringList of bound scene IDs.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"VerifyRuleId": "vr_20250715001"
}
Output Example​
{
"Response": {
"VerifyRuleId": "vr_20250715001",
"VerifyRuleName": "工作日早晚高峰",
"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": "研发中心"
}
],
"UserInfos": [
{
"UserId": "user001",
"UserName": "张三"
}
]
},
"EnableWebhookRule": false,
"BindSceneIdList": [
"scene001",
"scene002"
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Verification Rule List​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeVerifyRuleList.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
VerifyRuleIdListNoArray of StringVerification rule ID list. Exact match; batch query is supported.
VerifyRuleNameNoStringVerification rule name. Fuzzy search is supported.
OffsetNoIntegerOffset. Default: 0.
LimitNoIntegerNumber of results to return. Default: 20; maximum: 100.

3. Output Parameters​

Parameter NameTypeDescription
TotalCountIntegerTotal number of verification rules that meet the conditions.
VerifyRuleListArray of DescribeVerifyRuleListResponseVerifyRuleItemVerification rule list. See the DescribeVerifyRuleListResponseVerifyRuleItem structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"VerifyRuleName": "工作日",
"Offset": 0,
"Limit": 20
}
Output Example​
{
"Response": {
"TotalCount": 1,
"VerifyRuleList": [
{
"VerifyRuleId": "vr_20250715001",
"VerifyRuleName": "工作日早晚高峰",
"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": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Check Access Permission (callback only)​

1. API Description​

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

Interface description: Used to check a user's access permission. This API only supports callbacks and does not support active pulling. 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 returns whether access is allowed along with the reason based on its own rules.

2. Input Parameters​

Parameter NameTypeDescription
UserIdStringUser ID
UserNameStringUser name
VerificationTimeTimestampVerification time in RFC3339 string format, e.g., "2025-07-03T09:30:15.500Z"
VerificationMediumVerificationMediumVerification medium
DeviceSnStringDevice SN
SceneIdStringScene ID
SceneNameStringScene name

3. Output Parameters​

Parameter NameTypeDescription
AllowedBooleanWhether access is allowed
ReasonStringAccess reason description, e.g., "Hit verification rule: visitor appointment access"
RequestIdStringUnique request ID. RequestId is returned for every request.

4. Request and Response Examples​

Request Example​
POST / HTTP/1.1
Host: <客户回调地址域名>
Content-Type: application/json; charset=utf-8
X-TC-Action: CheckAccessPermission

{
"UserId": "user001",
"UserName": "张三",
"VerificationTime": "2025-07-15T09:30:15.500Z",
"VerificationMedium": "palm",
"DeviceSn": "device001",
"SceneId": "scene001",
"SceneName": "深圳南山门禁1号"
}
Response Example (access allowed)​
{
"Response": {
"Allowed": true,
"Reason": "命中核验规则:访客预约通行",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Response Example (access denied)​
{
"Response": {
"Allowed": false,
"Reason": "用户未在允许时间范围内",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

QR Code Palm Registration APIs​

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 registers their palm, the palm verification device displays the QR code, which 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 of a 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. API Description​

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

Interface description: Used to notify the server of user QR code scan events. This API only verifies the Token and does not verify the signature; the Authorization field is not required in the HTTP header.

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: NotifyQrCodeScanEvent.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
SessionIdYesStringSession ID
EventTypeNoNotifyQrCodeScanEventRequestQrCodeScanEventTypeEvent type. See the NotifyQrCodeScanEventRequestQrCodeScanEventType enum. When not passed, it is equivalent to scanned.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID. RequestId is returned for every request.

4. Example​

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

{
"SessionId": "session_001"
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

QR Code Palm Print Binding​

1. API Description​

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

Interface description: Used to bind a palm print by scanning the QR code. This API only verifies the Token and does not verify the signature; the Authorization field is not required in the HTTP header.

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: BindQrCodeScanPalm.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
SessionIdYesStringSession ID
UserIdYesStringUnique user identifier
UserNameYesStringUser name
ReplacePalmNoBooleanWhether to replace the palm

3. Output Parameters​

Parameter NameTypeDescription
UserSessionIdStringUser session ID
RequestIdStringUnique request ID. RequestId is returned for every request.

4. Example​

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

{
"SessionId": "session_001",
"UserId": "user001",
"UserName": "张三",
"ReplacePalm": false
}
Output Example​
{
"Response": {
"UserSessionId": "user_session_001",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query QR Code Palm Registration User Information​

1. API Description​

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

Interface description: Used to query QR Code Palm Registration user information. This API only verifies the Token and does not verify the signature; the Authorization field is not required in the HTTP header.

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeQrCodeScanUser.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
SessionIdYesStringSession ID
UserIdYesStringUnique user identifier

3. Output Parameters​

Parameter NameTypeDescription
UserIdStringUnique user identifier
PalmStatePalmStatePrimary palm registration status
UserNameStringUser name
UserStateUserStateUser state. See the UserState enum.
PalmDirectionPalmDirectionPrimary palm direction. See the PalmDirection enum.
LeftPalmPalmInfoLeft palm registration information. See the PalmInfo structure.
RightPalmPalmInfoRight palm registration information. See the PalmInfo structure.
PhoneNoStringPhone number (with country code).
RequestIdStringUnique request ID. RequestId is returned for every request.

4. Example​

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

{
"SessionId": "session_001",
"UserId": "user001"
}
Output Example​
{
"Response": {
"UserId": "user001",
"PalmState": "registered",
"UserName": "张三",
"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": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Create QR Code Palm Registration Session​

1. API Description​

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

Interface description: Creates a QR Code Palm Registration session, used to generate a QR code or URL for user palm registration by scanning. Three session purposes are supported: QR Code Palm Registration (scan_register), tap-code palm registration (tap_register), and tap-code additional verification (tap_verify). This API only verifies the Token and does not verify the signature; the Authorization field is not required in the HTTP header.

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: CreateQrCodeScanSession.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
TtlNoStringExpected session lifetime. Takes effect in scan_register/tap_register scenarios; in tap_verify scenarios it is determined by tenant configuration (this field does not take effect). When not specified, the default is 1 hour for scan_register and 15 minutes for tap_register. Maximum: 24 hours. String format, e.g., "3600s".
ResponseFormatNoResponseFormatResponse data format. Options: metadata (default, returns metadata), url (returns the QR code URL), image (returns the QR code image).
PalmDirectionNoPalmDirectionPalm direction, specifying the palm direction for this palm registration.
QrCodeSessionTypeNoQrCodeSessionTypeSession purpose. When 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.
UserIdNoStringUser ID. Required in tap_register/tap_verify scenarios.
UserNameNoStringUser name. Required in the tap_register scenario; optional in the tap_verify scenario.
PhoneNoNoStringPhone number. Optional in the tap-code palm registration scenario; when passed, it is checked against the user phone number in the backend.

3. Output Parameters​

Parameter NameTypeDescription
SessionIdStringSession ID.
ExpireTimeTimestampSession expiration time in RFC3339 string format, e.g., "2025-07-03T09:30:15.500Z".
AppIdStringApplication ID, which must be carried in the HTTP request header "X-Palm-Appid" for subsequent QR Code Palm Registration requests of this session.
AccessTokenStringAccess token, which must be carried in the HTTP request header "X-Palm-Openapi-Token" for subsequent QR Code Palm Registration requests of this session.
AccessTokenExpireTimeTimestampToken expiration time in RFC3339 string format, e.g., "2025-07-03T09:30:15.500Z".
SessionUrlStringSession URL. A complete H5 link in the scan_register scenario; a session identifier in tap_register/tap_verify scenarios. Returned only when ResponseFormat=url.
SessionImageStringSession QR code image (base64-encoded binary data), returned only when ResponseFormat=image.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"Ttl": "3600s",
"ResponseFormat": "metadata",
"PalmDirection": "right",
"QrCodeSessionType": "scan_register"
}
Output Example​
{
"Response": {
"SessionId": "session_001",
"ExpireTime": "2025-07-03T10:30:15.500Z",
"AppId": "app_001",
"AccessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"AccessTokenExpireTime": "2025-07-03T10:30:15.500Z",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query QR Code Palm Registration Session Status​

1. API Description​

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

Interface description: Used to query the QR Code Palm Registration session status. This API only verifies the Token and does not verify the signature; the Authorization field is not required in the HTTP header.

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeQrCodeScanSession.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
SessionIdYesStringSession ID.

3. Output Parameters​

Parameter NameTypeDescription
QrCodeScanStateQrCodeScanStateQR code scan state.
UserIdStringUnique user identifier.
UserNameStringUser name.
ReplacePalmBooleanWhether to replace the palm.
PalmDirectionPalmDirectionPalm direction.
QrCodeSessionTypeQrCodeSessionTypeSession purpose, used by the device side to distinguish between QR Code Palm Registration, tap-code palm registration, and tap-code additional verification scenarios.
PhoneNoStringPhone number (with country code).
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"SessionId": "session_001"
}
Output Example​
{
"Response": {
"QrCodeScanState": "scanned",
"UserId": "user001",
"UserName": "张三",
"ReplacePalm": false,
"PalmDirection": "right",
"QrCodeSessionType": "scan_register",
"PhoneNo": "+8613800138000",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

PalmMa Login APIs​

Send SMS Verification Code​

1. API Description​

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

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: SendPalmMaSmsCode.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
PhoneNoYesStringPhone number (with country code).

3. Output Parameters​

Parameter NameTypeDescription
SessionIdStringSession ID, used for subsequent verification code validation.
ExpireTimeTimestampSession expiration time in RFC3339 string format, e.g., "2025-07-03T09:30:15.500Z".
ResendIntervalStringResend interval of the session verification code, e.g., "60s".
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"PhoneNo": "+8613800138000"
}
Output Example​
{
"Response": {
"SessionId": "sess_1234567890abcdef",
"ExpireTime": "2025-07-03T09:40:15.500Z",
"ResendInterval": "60s",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

SMS Verification Code Login​

1. API Description​

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

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: LoginPalmMaSmsCode.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
SmsCodeNoStringSMS verification code (verification is required every time, and the 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 (for one-time use; it expires immediately after successful validation). If SMS capability is not configured during deployment, this field does not need to be passed.
UserIdYesStringUser ID.
PhoneNoNoStringPhone number (with country code), used to verify against the phone number bound to the user in the backend. If not passed, verification is skipped.
GrantTypeNoGrantTypeGrant Type.
When calling the Palm Application Platform open APIs, you must use client_credential.

Valid values:
- client_credential_user: Applicable to scenarios where a third-party platform integrates the Mobile Palm Registration SDK, that is:
a. The mobile end uses the SDK to initiate registration or obtain the liveness video upload URL;
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 be passed at the same time.

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

The default type when not passed is client_credential_user. See the GrantType enum.

3. Output Parameters​

Parameter NameTypeDescription
AccessTokenStringAccess token (short-term validity, e.g., 2 hours). Subsequent requests of the current session need to carry this token in the HTTP request header "X-Palm-Openapi-Token".
AccessTokenExpireTimeTimestampAccess token expiration time in RFC3339 string format, e.g., "2025-07-03T09:30:15.500Z".
RefreshTokenStringRefresh token (long-term validity, e.g., 30 days), used to refresh the access token.
RefreshTokenExpireTimeTimestampRefresh token expiration time in RFC3339 string format, e.g., "2025-07-03T09:30:15.500Z".
CheckErrorLoginPalmMaSmsCodeResponseCheckErrorVerification error. See the LoginPalmMaSmsCodeResponseCheckError enum. The default value check_error_unspecified indicates success.
UserIdListArray of StringUser ID list (desensitized), returned only when GrantType is client_credential_user.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"SmsCode": "123456",
"SessionId": "sess_1234567890abcdef",
"UserId": "user001",
"GrantType": "client_credential"
}
Output Example​
{
"Response": {
"AccessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"AccessTokenExpireTime": "2025-07-03T11:30:15.500Z",
"RefreshToken": "refresh_token_xxx",
"RefreshTokenExpireTime": "2025-08-02T09:30:15.500Z",
"CheckError": "check_error_unspecified",
"UserIdList": [
"user001"
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Palm Print Management APIs (Palm Algorithm Platform)​

Create Palm Print​

1. API Description​

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

Interface description: Uploads palm images to create a palm print and returns the PalmId. Two-factor authentication.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: CreatePalm.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
RgbImageYesImageRGB image data. See the Image structure.
IrImageYesImageIR image data. See the Image structure.
PalmDirectionYesPalmPaasPalmDirectionPalm direction. See the PalmPaasPalmDirection enum. 1: left hand; 2: right hand.

3. Output Parameters​

Parameter NameTypeDescription
PalmIdStringPalm print ID.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"RgbImage": {
"Data": "... 特征数据,需要base64",
"ThreePointList": [
{"PointX": 279.19387799999998, "PointY": 283.87393200000002},
{"PointX": 355.835083, "PointY": 282.88299599999999},
{"PointX": 429.38259900000003, "PointY": 321.33651700000001}
],
"ImageType": 1
},
"IrImage": {
"Data": "... 特征数据,需要base64",
"ThreePointList": [
{"PointX": 279.19387799999998, "PointY": 283.87393200000002},
{"PointX": 355.835083, "PointY": 282.88299599999999},
{"PointX": 429.38259900000003, "PointY": 321.33651700000001}
],
"ImageType": 2
},
"PalmDirection": 1
}
Output Example​
{
"Response": {
"PalmId": "8db884f9-1fb8-44f5-bdaa-f98fdcb3cd47",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue.PalmIdEmpty",
"Message": "掌纹ID为空"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Bind Palm Print​

1. API Description​

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

Interface description: Binds a created PalmId to a specified user. Two-factor authentication.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: BindPalm.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdYesStringUnique user identifier.
PalmIdYesStringPalm print ID.
IsForceNoBooleanWhether to force rebinding.
AlgorithmStrategyNoAlgorithmStrategyAlgorithm 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 PalmId remains unchanged) and returns the user's registered PalmId.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserId": "user001",
"PalmId": "8db884f9-1fb8-44f5-bdaa-f98fdcb3cd47",
"IsForce": true,
"AlgorithmStrategy": 2
}
Output Example​
{
"Response": {
"PalmId": "8db884f9-1fb8-44f5-bdaa-f98fdcb3cd47",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.UserNotExist",
"Message": "用户不存在"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Register Palm Print​

1. API Description​

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

Interface description: Uploads palm images to create a palm print and binds it to a specified user. Two-factor authentication.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: RegisterPalm.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdYesStringUnique user identifier.
RgbImageYesImageRGB image data. See the Image structure.
IrImageYesImageIR image data. See the Image structure.
PalmDirectionYesPalmPaasPalmDirectionPalm direction. See the PalmPaasPalmDirection enum.
IsForceNoBooleanWhether to force rebinding.
AlgorithmStrategyNoAlgorithmStrategyAlgorithm strategy type. See the AlgorithmStrategy enum.
HighSimilarityResolutionStrategyNoHighSimilarityResolutionStrategyPolicy for handling high-similarity users 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 PalmId remains unchanged) and returns the user's registered PalmId.
CheckErrorsArray of IntegerRegistration check error list. See the RegisterPalmResponseCheckError enum. Empty indicates successful registration; non-empty indicates registration was rejected. Only when HighSimilarityResolutionStrategy = 2 (REJECT_WITH_SIMILAR_USERS), the rejection reason is returned through this field instead of an error.
HighSimilarityUserIdListArray of StringList of high-similarity user IDs. Has a value when CheckErrors contains 1 (HIGH_SIMILARITY_DETECTED).
RequestIdStringUnique request ID, returned for every request.

4. Example​

Input Example​
POST / HTTP/1.1
Host: open.intl.palm.tencent.com
Content-Type: application/json; charset=utf-8
X-TC-Action: 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": "... 特征数据,需要base64",
"ThreePointList": [
{"PointX": 279.19387799999998, "PointY": 283.87393200000002},
{"PointX": 355.835083, "PointY": 282.88299599999999},
{"PointX": 429.38259900000003, "PointY": 321.33651700000001}
],
"ImageType": 1
},
"IrImage": {
"Data": "... 特征数据,需要base64",
"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": "用户不存在"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

1. API Description​

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

Interface description: Uploads RGB+IR palm images, performs a 1:N search for users, and returns additional verification information.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: SearchMobilePalm.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
ProductVersionNoStringAlgorithm version of the palm scan product, provided by the integrating product, e.g., v20250715.
RgbImageYesImageRGB image data. See the Image structure.
IrImageNoImageIR image data, used to supplement the palm database after subsequent additional verification passes. See the Image structure.
PalmDirectionYesPalmPaasPalmDirectionPalm direction. See the PalmPaasPalmDirection enum. 1: left hand; 2: right hand.

3. Output Parameters​

Parameter NameTypeDescription
VerifyInfoVerifyInfoAdditional verification information. See the VerifyInfo structure.
PalmIdStringPalm print ID.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

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

User Additional Verification​

1. API Description​

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

Interface description: Completes user identity additional verification and binds the palm print.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: Verify.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
VerifyIdYesStringAdditional verification ID. Source: VerifyInfo.VerifyId returned by SearchMobilePalm.
UserIdYesStringUnique identifier of the user undergoing additional verification.
VerifyResultYesVerifyResultAdditional verification result. See the VerifyResult enum.
AlgorithmStrategyNoAlgorithmStrategyAlgorithm strategy type. See the AlgorithmStrategy enum.

3. Output Parameters​

Parameter NameTypeDescription
VerifyInfoVerifyInfoAdditional verification information, returned when further additional verification is needed. See the VerifyInfo structure.
PalmIdStringThe palm print ID of the user, returned when additional verification succeeds.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"VerifyId": "a1b2c3d4-5678-9abc-def0-1234567890ab",
"UserId": "user001",
"VerifyResult": 1,
"AlgorithmStrategy": 2
}
Output Example​
{
"Response": {
"PalmId": "8db884f9-1fb8-44f5-bdaa-f98fdcb3cd47",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Output example (further additional verification needed)​
{
"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": "用户ID为空"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Delete Palm Print​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DeletePalm.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdYesStringUnique user identifier.
PalmDirectionListYesArray of PalmPaasPalmDirectionList of palm print directions. Both left and right hands can be passed at the same time, or a single left or right hand.

3. Output Parameters​

Parameter NameTypeDescription
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserId": "user001",
"PalmDirectionList": [1, 2]
}
Output Example​
{
"Response": {
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.UserNotExist",
"Message": "用户不存在"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Palm Print​

1. API Description​

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

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

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribePalm.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
UserIdYesStringUnique user identifier.
UserTokenNoStringUser token. The client SDK queries through the token.

3. Output Parameters​

Parameter NameTypeDescription
LeftPalmPalmPaasPalmInfoLeft-hand palm print information. See the PalmPaasPalmInfo structure.
RightPalmPalmPaasPalmInfoRight-hand palm print information. See the PalmPaasPalmInfo structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"UserId": "user001"
}
Output Example​
{
"Response": {
"LeftPalm": {
"PalmState": 3,
"PalmDirection": 1,
"RegisterTime": 1700000000,
"RegisterType": 1
},
"RightPalm": {
"PalmState": 3,
"PalmDirection": 2,
"RegisterTime": 1700000100,
"RegisterType": 1
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "FailedOperation.UserNotExist",
"Message": "用户不存在"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Synchronize Palm Print Features​

1. API Description​

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

Interface description: Synchronizes palm print features.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: SynchronizePalmFeature.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
ProductVersionYesStringProduct version to synchronize, e.g., v20250715. This version number must match the version number on the device.
QueryPositionYesStringCurrent synchronization position. Pass an empty string for the first time; for subsequent requests, use the QueryPosition data in the response.
DeviceIdYesStringDevice ID. Currently used only for troubleshooting.
DisableFeatureNoBooleanDisables returning the feature value. Default is false (returned); when true, it is not returned.
OperationsNoArray of PalmPaasOperationFilters 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 PalmFeatureDetailPalm 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 and synchronization can continue. Other states may be added in the future; if so, the documentation will be updated accordingly.
QueryPositionStringCurrent synchronization position.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"ProductVersion": "v1.0",
"QueryPosition": "",
"DeviceId": "X8AZ112D4646978SKAP3ZX3",
"DisableFeature": false
}
Output Example​
{
"Response": {
"PalmFeatureDetailList": [
{
"PalmId": "8db884f9-1fb8-44f5-bdaa-f98fdcb3cd47",
"Status": 1,
"ImageType": 1,
"Feature": {
"FeatureValue": "... 特征数据,需要base64",
"FeatureType": 1,
"FeatureDigest": "md5hash",
"FeatureDimension": 128
},
"PalmDirection": 1,
"PalmDataVersion": 100,
"UserId": "user001",
"Operation": 1
}
],
"HasMore": 2,
"QueryPosition": "position_abc",
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}

Query Product Version List​

1. API Description​

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

Interface description: Queries the product version list.

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

2. Input Parameters​

Parameter NameRequiredTypeDescription
ActionYesStringCommon parameter. Value for this API: DescribeVersionList.
VersionYesStringCommon parameter. Value for this API: 2025-07-15.
ProductNameYesStringProduct name. For the Standard edition, it is fixed as: standard.

3. Output Parameters​

Parameter NameTypeDescription
VersionListArray of ProductVersionInfoVersion information list. See the ProductVersionInfo structure.
RequestIdStringUnique request ID, returned for every request.

4. Example​

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

{
"ProductName": "standard"
}
Output Example​
{
"Response": {
"VersionList": [
{
"ProductVersion": "v20250715",
"ProductVersionCreateTime": 1700000000,
"Status": 1,
"OldProductName": ""
},
{
"ProductVersion": "v20250801",
"ProductVersionCreateTime": 1700100000,
"Status": 2,
"OldProductName": "standard_v1"
}
],
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}
Error output example​
{
"Response": {
"Error": {
"Code": "InvalidParameterValue",
"Message": "参数取值错误"
},
"RequestId": "d6a4c45b-d30f-49c8-a724-ecc37d0f0c42"
}
}


Data Structures​

Common Business Structures​

PalmInfo​

Single palm registration information.

NameTypeDescription
PalmStatePalmStatePalm state.
RegisterTypeRegisterTypeRegistration method.
PreRegisterTimeTimestampMobile Palm Registration Time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
RegisterTimeTimestampPalm registration completion time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
ExpireTimeTimestampPalm print expiration time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".

TimeRule​

NameTypeDescription
AllowDateRangeDateRangeAllowed verification date range. Empty means no restriction.
DisallowDateListDate[]List of dates on which verification is not allowed
AllowDayOfWeekListDayOfWeek[]Valid days of each week
AllowTimePeriodListTimePeriod[]Allowed access time periods each day

DateRange​

NameTypeDescription
StartDateDateStart date
EndDateDateEnd date

Date​

NameTypeDescription
YearIntegerYear
MonthIntegerMonth
DayIntegerDay

TimeOfDay​

NameTypeDescription
HoursIntegerHour
MinutesIntegerMinute
SecondsIntegerSecond

TimePeriod​

NameTypeDescription
StartTimeTimeOfDayStart time
EndTimeTimeOfDayEnd time
MaxVerificationCountIntegerAllowed number of verifications. 0 means no restriction.

UserRule​

NameTypeDescription
UserTagsUserTagInfo[]User tag list
UserInfosUserInfo[]User information list

UserTagInfo​

NameTypeDescription
UserTagIdStringUnique user tag identifier
UserTagNameStringUser tag name

UserInfo​

NameTypeDescription
UserIdStringUnique user identifier
UserNameStringUser name

OrderBy​

Sorting condition.

NameTypeDescription
FieldVerificationRecordOrderFieldSorting field
OrderSortOrderSort order

Image​

Image.

NameTypeDescription
DataStringImage data, requires base64.
ThreePointListArray of PointfThree-point data.
ImageTypeImageTypeImage type. See the ImageType enum.
DataDigestStringMd5 computed on the image data.

Pointf​

Point.

NameTypeDescription
PointXFloatX-axis coordinate.
PointYFloatY-axis coordinate.

Feature​

Feature.

NameTypeDescription
FeatureValueStringFeature value.
FeatureTypeFeatureTypeFeature type. See the FeatureType enum.
FeatureDigestStringFeature digest.
FeatureDimensionIntegerDimension of the feature value.

VerifyInfo​

Additional verification information.

NameTypeDescription
NeedVerifyBooleanWhether additional verification is required. The VerifyInfo information is meaningful only when true is returned here.
UserIdStringID of the user undergoing additional verification.
VerifyIdStringAdditional verification ID.
VerifyTypeVerifyTypeAdditional verification type. See the VerifyType enum.
HighSimilarityUserIdListArray of StringReturned when the additional verification type is high-similarity verification; indicates the list of high-similarity user IDs requiring additional verification.

PalmFeatureDetail​

Palm print feature details.

NameTypeDescription
PalmIdStringPalm print ID.
StatusPalmStatusPalm print status. See the PalmStatus enum.
ImageTypeImageTypeImage type. See the ImageType enum.
FeatureFeatureFeature. See the Feature structure.
PalmDirectionPalmPaasPalmDirectionPalm print direction. See the PalmPaasPalmDirection enum.
PalmDataVersionIntegerData version. Each data record contains a version number field, identified by a monotonically increasing integer version. When the data content changes, its version number automatically increments. During data synchronization, the system uses a version comparison mechanism: local data is overwritten only when the locally stored version number is strictly greater than the version number obtained by synchronization.
UserIdStringUser ID.
OperationPalmPaasOperationOperation type. See the PalmPaasOperation enum.

ProductVersionInfo​

Product version information.

NameTypeDescription
ProductVersionStringAlgorithm version of the palm scan product, provided by the integrating product, e.g., v20250715.
ProductVersionCreateTimeIntegerProduct version creation time.
StatusIntegerAlgorithm version type of the palm scan product. 1: currently used version; 2: version to be upgraded.
OldProductNameStringOriginal product name.

CustomFieldValueItem​

Custom additional verification field value item at the user level.

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

API-Specific Structures​

Palm Print Management APIs​

PalmPaasPalmInfo​

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

Note: This structure is used only for palm print management APIs. It has a different field set from PalmInfo used by user management APIs (no PreRegisterTime; additionally includes PalmDirection / MobileRegisterTime).

NameTypeDescription
PalmStatePalmPaasPalmStatePalm state. See the PalmPaasPalmState enum.
PalmDirectionPalmPaasPalmDirectionPalm direction. See the PalmPaasPalmDirection enum.
RegisterTimeIntegerRegistration time, a Unix timestamp in seconds.
ExpireTimeIntegerPalm print expiration time, a Unix timestamp in seconds. Returned only when the user's palm print is in the Mobile Palm Registration Pending Stage (PalmState=2, to be activated); not returned in other states.
MobileRegisterTimeIntegerMobile Palm Registration Time.
RegisterTypePalmPaasRegisterTypeRegistration type. See the PalmPaasRegisterType enum.

User Management APIs​

CreateUserResponsePartialFailureError​

Partial failure error information of the Create User API.

NameTypeDescription
NotExistUserTagIdListArray of StringList of user tag IDs that do not exist
ModifyUserResponsePartialFailureError​

Partial failure error information of the Modify User API.

NameTypeDescription
NotExistUserTagIdListArray of StringList of user tag IDs that do not exist
DescribeUserResponseUserTag​

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

Field NameTypeDescription
UserTagIdStringUser tag ID
UserTagNameStringUser tag name
DescribeUserListResponseUser​

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

Field NameTypeDescription
UserIdStringUnique user identifier
UserNameStringUser name
PhoneNoStringPhone number (with country code)
PhysicalCardNoStringPhysical card number
UserTagListArray of DescribeUserListResponseUserTagUser tag list. See the DescribeUserListResponseUserTag structure
RegisterTypeRegisterTypePrimary palm registration type
PalmStatePalmStatePrimary palm registration status
PalmDirectionPalmDirectionPrimary palm direction
PalmPreRegisterTimeTimestampPrimary palm pre-registration time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
PalmRegisterTimeTimestampPrimary palm registration time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
PalmExpireTimeTimestampPrimary palm feature expiration time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
UserStateUserStateUser state
AccessScopeSummaryAccessScopeSummaryAccess scope summary
CreatedTimeTimestampUser creation time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampUser last update time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
DescribeUserListResponseUserTag​

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

Field NameTypeDescription
UserTagIdStringUser tag ID
UserTagNameStringUser tag name

User Tag Management APIs​

DescribeUserTagListResponseUserTagItem​

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

Field NameTypeDescription
UserTagIdStringTag ID
UserTagNameStringTag name
UserCountIntegerNumber of users associated with the tag
ParentTagIdStringParent tag ID. Empty indicates a top-level tag
LevelIntegerHierarchy depth: 0=L1 (top level), 1=L2 (level 2), 2=L3 (level 3)
ChildrenCountIntegerNumber of direct child tags
PathNodesArray of UserTagNodeComplete hierarchy path from the root tag to the current tag, returned in parent-to-child order. See the UserTagNode structure.
CreatedTimeTimestampCreation time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampLast update time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
UserTagNode​

User tag hierarchy path node structure, used to represent the complete hierarchy path from the root tag to the current tag.

Field NameTypeDescription
UserTagIdStringUser tag ID
UserTagNameStringUser tag name
LevelIntegerTag level: 0=L1 (top level), 1=L2 (level 2), 2=L3 (level 3)
UserTag​

User tag information structure.

Field NameTypeDescription
UserTagIdStringUser tag ID
UserTagNameStringUser tag name
PathNodesArray of UserTagNodeComplete hierarchy path from the root tag to the current tag, returned in parent-to-child order.
UserTagTreeNode​

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

Field NameTypeDescription
UserTagIdStringTag ID
UserTagNameStringTag name
UserCountIntegerNumber of users associated with the tag
LevelIntegerHierarchy depth: 0=L1, 1=L2, 2=L3
ParentTagIdStringParent tag ID. Empty for top-level tags
ChildrenArray of UserTagTreeNodeChild tag nodes

User Access Scope​

AccessScopeItem​

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

Field NameTypeDescription
SceneIdStringScene ID
SceneNameStringScene name
SceneGroupIdStringScene group ID
SceneGroupNameStringScene group name
DeviceSnStringDevice SN (empty when no device is bound)
DeviceNameStringDevice name (empty when no device is bound)
VerifyRulesArray of VerifyRuleInfoBound verification rule list (empty array when no rule is bound)
VerifyRuleInfo​

Verification rule information structure.

Field NameTypeDescription
VerifyRuleIdStringVerification rule ID
VerifyRuleNameStringVerification rule name
AccessScopeSummary​

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

Field NameTypeDescription
SceneGroupCountIntegerNumber of accessible scene groups
SceneCountIntegerNumber of accessible scenes
DeviceCountIntegerNumber of accessible devices

Device Management APIs​

DescribeDeviceListResponseDevice​

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

Field NameTypeDescription
DeviceSnStringDevice serial number
DeviceTypeStringDevice type
DeviceNameStringDevice name
HeartbeatTimeTimestampDevice heartbeat time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
ModuleHeartbeatTimeTimestampModule heartbeat time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
SystemVersionStringSystem version
AppVersionStringApplication version
ModuleTypeStringModule type
ModuleVersionStringModule version
ModuleExpireTimeTimestampModule expiration time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
StatusDeviceStatusReal-time device status
SceneIdStringBound scene ID
SceneNameStringBound scene name
CreatedTimeTimestampDevice creation time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampLast update time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
DescribeDeviceEmergencyStatusResponseDeviceEmergencyStatus​

Element structure of the output parameter DeviceEmergencyStatusList of the Query Device Emergency Status (DescribeDeviceEmergencyStatus) API.

Field NameTypeDescription
DeviceSnStringDevice serial number
EmergencyStatusEmergencyStatusDevice emergency status. See the EmergencyStatus enum
SendEmergencyCommandResponseFailedDevice​

Element structure of the output parameter FailedDeviceList of the Send Emergency Control Command (SendEmergencyCommand) API.

Field NameTypeDescription
DeviceSnStringDevice serial number
ErrorMessageStringFailure reason

Scene Management APIs​

DescribeSceneListResponseSceneItem​

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

Field NameTypeDescription
SceneIdStringScene ID
SceneNameStringScene name
SceneGroupIdStringID of the scene group it belongs to
SceneGroupNameStringName of the scene group it belongs to
DeviceSnStringBound device serial number
DeviceNameStringBound device name
ScenarioStrategyScenarioStrategyScene strategy
VerifyRuleIdListArray of StringList of associated verification rule IDs
CreatedTimeTimestampCreation time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampLast update time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
DescribeSceneGroupListResponseSceneGroupItem​

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

Field NameTypeDescription
SceneGroupIdStringScene group ID
SceneGroupNameStringScene group name
ParentSceneGroupIdStringParent scene group ID. This value is "0" for top-level scene groups
ParentSceneGroupNameStringParent scene group name. This value is empty for top-level scene groups
SceneCountIntegerNumber of direct child scenes
ChildGroupCountIntegerNumber of direct child scene groups
CreatedTimeTimestampCreation time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampLast update time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".

Verification Record APIs​

DescribeVerificationRecordListResponseVerificationRecord​

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

Field NameTypeDescription
UserIdStringUser ID
UserNameStringUser name
VerificationTimeTimestampVerification time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
VerificationMediumVerificationMediumVerification medium
DeviceSnStringDevice SN
SceneIdStringScene ID
SceneNameStringScene name
VerifierIdStringVerifier ID
VerifierNameStringVerifier name
SceneGroupIdStringScene group ID
SceneGroupNameStringScene group name
SourceVerificationRecordSourceVerification record source
AccessDeniedBooleanWhether the verification result is rejected. Returned (with the value true) only when verification fails
ReasonStringVerification description

Verification Rule APIs​

DescribeVerifyRuleListResponseVerifyRuleItem​

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

Field NameTypeDescription
VerifyRuleIdStringGlobally unique verification rule ID
VerifyRuleNameStringVerification rule name
EnableTimeRuleBooleanWhether to enable the time rule
TimeRuleTimeRuleTime rule. See the TimeRule structure
EnableUserRuleBooleanWhether to enable the user rule
UserRuleUserRuleUser rule. See the UserRule structure
EnableWebhookRuleBooleanWhether to enable the webhook rule
BindSceneIdListArray of StringList of bound scene IDs
CreatedTimeTimestampCreation time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".
UpdatedTimeTimestampLast update time in RFC3339 format, e.g., "2025-07-03T09:30:15.500Z".

Enum Types​

PalmState​

Palm state.

Return type: string; the value is one of the enum value names in the table below.

Enum ValueDescription
unregisteredNot registered
pre_registeredPre-registered
registeredRegistered
abnormalAbnormal

UserState​

Return type: string; the value is one of the enum value names in the table below.
The user state represents the status 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 activated palm
user_state_abnormalAbnormal: the user state is abnormal (at least one palm is abnormal and there is no activated palm)
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; the value is one of the enum value names in the table below.

Enum ValueDescription
verification_medium_unspecifiedMedium unspecified
palmPalm scan
cardCard
codeCode

NotifyQrCodeScanEventRequestQrCodeScanEventType​

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

Return type: string; the value is one of 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; the value is one of the enum value names in the table below.

Enum ValueDescription
NONEUnspecified
MONDAYMonday
TUESDAYTuesday
WEDNESDAYWednesday
THURSDAYThursday
FRIDAYFriday
SATURDAYSaturday
SUNDAYSunday

ScenarioStrategy​

Return type: string; the value is one of 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​

Registration type.

Return type: string; the value is one of the enum value names in the table below.

Enum ValueDescription
register_type_unspecifiedRegistration type unspecified
deviceDevice registration
mobileMobile registration

PalmDirection​

Palm print direction.

Return type: string; the value is one of the enum value names in the table below.

Enum ValueDescription
palm_direction_unspecifiedPalm print direction unspecified
leftLeft hand
rightRight hand

AdditionalVerifyMethod​

Additional verification method.

Return type: string; the value is one of 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_noLast four digits of the phone number
custom_fieldCustom field numeric verification
qr_codeQR code tap-code verification

VerificationRecordSource​

Verification record source.

Return type: string; the value is one of the enum value names in the table below.

Enum ValueDescription
verification_record_source_unspecifiedSource unspecified
deviceReported by the device side
mobileReported by the mobile side
serverReported by the server side
h5Reported by H5
wechatReported by WeChat Mini Program

DeviceStatus​

Device status.

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
0Device status unspecified
1Online
2Offline

EmergencyStatus​

Emergency status, a top-level standalone enum. The value of the output parameters TenantEmergencyStatus and DeviceEmergencyStatusList[i].EmergencyStatus of the Query Device Emergency Status (DescribeDeviceEmergencyStatus) API.

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
0Emergency status unspecified (normal state)
1Emergency lockdown
2Emergency opening

EmergencyCommandScope​

Emergency command scope, a top-level standalone enum. The value of the input parameter Scope of the Send Emergency Control Command (SendEmergencyCommand) API.

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
0Scope unspecified
1All devices
2Specified SN list

SendEmergencyCommandRequestEmergencyCommandType​

Emergency command type, an enum embedded in SendEmergencyCommandRequest. The value of the input parameter CommandType of the Send Emergency Control Command (SendEmergencyCommand) API.

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
0Emergency command operation type unspecified
1Block all (block)
2Open all (open)
3Restore block all (reset_block)
4Restore open all (reset_open)

VerificationRecordOrderField​

Verification record sorting field.

Return type: string; the value is one of the enum value names in the table below.

Enum ValueDescription
verification_record_order_field_unspecifiedUnspecified
verification_timeVerification time

SortOrder​

Sort order.

Return type: string; the value is one of the enum value names in the table below.

Enum ValueDescription
sort_order_unspecifiedUnspecified
ascAscending
descDescending

ImageType​

Image type.

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
1Rgb
2Ir

PalmPaasPalmDirection​

Palm direction.

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
1Left hand
2Right hand

FeatureType​

Feature type.

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
1float32
2int8
3int7

PalmStatus​

Palm print data status.

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
1Normal
2Deleted

PalmPaasOperation​

Operation type.

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
1Create
2Update
3Delete

PalmPaasPalmState​

Palm state.

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
1Pending capture: the user exists but has not registered a palm
2Pending activation: the user has activated Mobile Palm Registration but has not yet bound a palm
3Activated: the user has bound a palm through an offline device
100First registration, waiting for additional verification
101High similarity state
102The user was incorrectly bound
103The user has enabled Mobile Palm Registration, but another user found this user in the Mobile Palm Registration search when binding a palm

PalmPaasRegisterType​

Registration type.

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
0Unspecified
1Device registration
2Mobile registration

HasMoreType​

Whether there is more data.

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
1No more data
2More data available

AlgorithmStrategy​

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

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
0Unspecified, default value
1Strategy A: 100-user demo on-device recognition
2Strategy B: 10k-user access control and attendance on-device recognition
3Strategy C: 1M-user eKYC cloud recognition
4Strategy D: 1M-user eKYC hybrid recognition

HighSimilarityResolutionStrategy​

Policy for handling high-similarity users detected during palm registration.

Return type: integer; the value is one of the enum values in the table below.

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

RegisterPalmResponseCheckError​

Registration check error code, an enum embedded in RegisterPalmResponse. The value of the output parameter CheckErrors of the Register Palm Print (RegisterPalm) API.

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
0Unspecified
1High-similarity user detected

VerifyType​

Additional verification type.

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
0Unspecified, default value
1High-similarity additional verification
2The first-level threshold is not met, but the second-level threshold is met, and the auxiliary background image comparison threshold is not passed
3Mobile Palm Registration Additional Verification
4New registration type additional verification

VerifyResult​

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

Return type: integer; the value is one of the enum values in the table below.

Enum ValueDescription
0Unspecified, default value
1Success
2Failure

GrantType​

Grant Type.

Return type: string; the value is one of the enum value names in the table below.

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

LoginPalmMaSmsCodeResponseCheckError​

Login verification error. The value of the output parameter CheckError of the SMS Verification Code Login (LoginPalmMaSmsCode) API.

Return type: string; the value is one of the enum value names in the table below.

Enum ValueDescription
check_error_unspecifiedUnspecified; passes by default
phone_already_bindThe phone number is already bound to a user

QrCodeScanState​

QR code scan state.

Return type: string; the value is one of the enum value names in the table below.

Enum ValueDescription
pendingWaiting for the code to be scanned
scannedCode scanned, waiting for information to be filled in
successQR Code Palm Registration succeeded
failedQR Code Palm Registration failed
expiredThe QR Code Palm Registration session has expired

ResponseFormat​

Response data format.

Return type: string; the value is one of the enum value names in the table below.

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

QrCodeSessionType​

QR code session purpose.

Return type: string; the value is one of the enum value names in the table below.

Enum ValueDescription
scan_registerQR Code Palm Registration: the device generates a QR code → the user scans the code → palm registration and binding
tap_registerTap-code palm registration: the app generates a QR code (carrying user information) → the device scans the code → palm registration and binding
tap_verifyTap-code additional verification: the app generates a QR code (carrying user information) → the device scans the code → identity verification

General Structures​

Error​

NameTypeDescription
CodeStringError code
MessageStringError message

Error Codes​

Function Description​

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

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

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

Common Error Codes​

Error CodeDescription
InvalidParameterParameter error (including parameter format, type, and other errors)
InvalidParameterValueInvalid parameter value
MissingParameterMissing parameter error; a required parameter was not provided
UnknownParameterUnknown parameter error, caused by passing extra undefined parameters
AuthFailureCAM signature/authentication error
InternalErrorInternal error. Businesses must uniformly use InternalError or the InternalError.xxx form to represent internal errors
InvalidActionThe API does not exist
UnauthorizedOperationUnauthorized operation
RequestLimitExceededThe number of requests exceeds the frequency limit
NoSuchVersionThe API version does not exist
UnsupportedRegionThe API does not support the specified region
UnsupportedOperationOperation not supported
ResourceNotFoundResource does not exist
LimitExceededQuota limit exceeded
ResourceUnavailableResource unavailable
ResourceInsufficientInsufficient resources
ResourceExhaustedInsufficient resource quota or rate limit reached
FailedOperationOperation failed
ResourceInUseResource in use
DryRunOperationDryRun operation, which means the request would have succeeded, except that an extra DryRun parameter was passed
ResourcesSoldOutResource sold out
OperationDeniedOperation denied

Business error codes​

Error CodeDescription
InvalidParameterValue.FiltersLimitExceedThe number of filters exceeds the limit
InvalidParameterValue.PageLimitExceedPagination parameter exceeds the limit
InvalidParameterValue.PageTokenExpiredPagination token expired
InvalidParameterValue.PageTokenSignatureFailurePagination token signature verification failed
InvalidParameterValue.PageTokenQueryMismatchPagination token query condition mismatch
ResourceNotFound.TenantNotFoundThe specified tenant does not exist, or you do not have permission to access this tenant
InvalidParameterValue.UserIdEmptyUser ID is empty
InvalidParameterValue.UserIdLengthNotAllowedUser ID length does not meet the limit
InvalidParameterValue.UserIdShouldOnlyContainLettersAndDigitsUser ID can only contain letters and digits
InvalidParameterValue.UserIdShouldOnlyContainGraphicsAsciiUser ID can only contain ASCII graphic characters (ASCII range: 33-126)
InvalidParameterValue.UserNameEmptyUser name is empty
InvalidParameterValue.UserNameLengthNotAllowedUser name length does not meet the limit
InvalidParameterValue.UserNameOrPasswordEmptyUser name or password is empty
InvalidParameterValue.PhoneNoEmptyPhone number is empty
InvalidParameterValue.PhoneNoLengthNotAllowedPhone number length does not meet the limit
InvalidParameterValue.InvalidPhoneNoPhone number format is incorrect
InvalidParameterValue.PhysicalCardNoLengthNotAllowedPhysical card number length does not meet the limit
InvalidParameterValue.PhysicalCardNoShouldOnlyContainLettersAndDigitsPhysical card number can only contain letters and digits
InvalidParameterValue.PalmIdEmptyPalm ID is empty
InvalidParameterValue.SessionIdEmptySession ID is empty
InvalidParameterValue.SessionIdLengthNotAllowedSession ID length does not meet the limit
InvalidParameterValue.SessionNotExistSession does not exist
InvalidParameterValue.InvalidUserIdUser ID format is incorrect; it can only contain digits, letters, and hyphens
InvalidParameterValue.RegisterTypeNotAllowedRegistration type does not meet the limit
InvalidParameterValue.UserTagIdEmptyUser tag ID is empty
InvalidParameterValue.UserTagIdLengthNotAllowedUser tag ID length does not meet the limit
InvalidParameterValue.InvalidUserTagIdUser tag ID format is incorrect
InvalidParameterValue.UserTagNameEmptyUser tag name is empty
InvalidParameterValue.UserTagNameLengthNotAllowedUser tag name length does not meet the limit
InvalidParameterValue.DeviceSnEmptyDevice SN is empty
InvalidParameterValue.DeviceSnLengthNotAllowedDevice SN length does not meet the limit
InvalidParameterValue.DeviceSnShouldOnlyContainLettersAndDigitsDevice SN can only contain letters and digits
InvalidParameterValue.InvalidDeviceSnDevice SN format is incorrect
InvalidParameterValue.DeviceNameEmptyDevice name is empty
InvalidParameterValue.DeviceNameLengthNotAllowedDevice name length does not meet the limit
InvalidParameterValue.ErrDeviceNameInvalidDevice name format is incorrect
InvalidParameterValue.SceneIdEmptyScene ID is empty
InvalidParameterValue.SceneIdLengthNotAllowedScene ID length does not meet the limit
InvalidParameterValue.SceneIdShouldOnlyContainLettersAndDigitsScene ID can only contain letters and digits
InvalidParameterValue.InvalidSceneIdScene ID format is incorrect
InvalidParameterValue.SceneNameEmptyScene name is empty
InvalidParameterValue.SceneNameLengthNotAllowedScene name length does not meet the limit
InvalidParameterValue.SceneGroupIdEmptyScene group ID is empty
InvalidParameterValue.SceneGroupIdLengthNotAllowedScene group ID length does not meet the limit
InvalidParameterValue.SceneGroupIdShouldOnlyContainLettersAndDigitsScene group ID can only contain letters and digits
InvalidParameterValue.InvalidSceneGroupIdScene group ID format is incorrect
InvalidParameterValue.SceneGroupNameEmptyScene group name is empty
InvalidParameterValue.SceneGroupNameLengthNotAllowedScene group name length does not meet the limit
InvalidParameterValue.VerifierIdEmptyVerifier ID is empty
InvalidParameterValue.VerifierIdLengthNotAllowedVerifier ID length does not meet the limit
InvalidParameterValue.VerifierIdShouldOnlyContainLettersAndDigitsVerifier ID can only contain letters and digits
InvalidParameterValue.InvalidVerifierIdVerifier ID format is incorrect
InvalidParameterValue.VerifierNameEmptyVerifier name is empty
InvalidParameterValue.VerifierNameLengthNotAllowedVerifier name length does not meet the limit
InvalidParameterValue.QrCodeScanSessionIdEmptyQR Code Palm Registration session ID is empty
InvalidParameterValue.QrCodeScanSessionTtlNotAllowedQR Code Palm Registration session expected lifetime does not meet the limit
FailedOperation.UserNotExistThe user does not exist
FailedOperation.UserAlreadyExistsThe user already exists
FailedOperation.UserIdAlreadyExistsThe user ID already exists
FailedOperation.PhoneNoAlreadyExistsThe phone number already exists
FailedOperation.UserPalmAlreadyBoundThe user's palm is already bound
FailedOperation.SceneNotExistThe scene does not exist
FailedOperation.SceneAlreadyExistsThe scene already exists
FailedOperation.SceneGroupNotExistThe scene group does not exist
FailedOperation.SceneGroupAlreadyExistsThe scene group already exists
FailedOperation.DuplicateSceneNameInSceneGroupDuplicate scene name in the scene group
FailedOperation.DuplicateSceneGroupNameInSceneGroupDuplicate scene group name in the scene group
FailedOperation.DeviceSceneBindingLimitExceededDevice-scene binding limit exceeded
FailedOperation.QrCodeExpiredThe palm registration QR code has expired
FailedOperation.QrCodeFinishedThe palm registration QR code has been used
FailedOperation.QrCodeStatusInvalidThe palm registration QR code status is invalid
FailedOperation.BindPalmUserIdAndUserNameNotMatchThe user ID and user name of the palm print being bound do not match
FailedOperation.VerifyRuleAlreadyExistThe verification rule already exists
FailedOperation.VerifyRuleNotExistThe verification rule does not exist
FailedOperation.DeviceNotExistThe device does not exist
FailedOperation.DeviceAlreadyExistsThe device already exists
FailedOperation.DeviceCannotBeDeletedWhenBindWithSceneThe device cannot be deleted while bound to a scene
FailedOperation.DeviceNotBoundWithSceneThe device is not bound to a scene
FailedOperation.UserTagNotExistThe user tag does not exist
FailedOperation.UserTagAlreadyExistsThe user tag already exists
FailedOperation.UserTagNameAlreadyExistsThe user tag name already exists
InternalError.GetPaaSChannelFailedFailed to get the PaaS channel
InternalError.UpdateUserPalmFailedFailed to update the user's palm
InternalError.CreateUserTokenFailedFailed to create the user token
InternalError.BindUserPalmByPaaSChannelFailedFailed to bind the user's palm through the PaaS channel
InternalError.DeleteUserPalmByPaaSChannelFailedFailed to delete the user's palm through the PaaS channel
InternalError.DescribeUserPalmByPaaSChannelFailedFailed to query the user's palm through the PaaS channel
InternalError.CreateAccessTokenFailedFailed to create the open API access token
InternalError.CreateDeviceAccessTokenFailedFailed to create the open API device access token
InternalError.DescribeSecretKeyFailedFailed to query the open API access key
FailedOperation.MemberNotExistThe member does not exist
FailedOperation.MemberAlreadyExistsThe member already exists
FailedOperation.MemberLoginExpiredThe member login has expired
FailedOperation.NoAvailableVersionNo available version
FailedOperation.UnknownImageTypeUnknown image type
FailedOperation.PicInconsistentImage MD5 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.VerifyUserIdNoMatchVerification user ID does not match
FailedOperation.VerifyIdExpireVerification ID expired
FailedOperation.PalmIdAlreadyExistThe palm ID already exists
FailedOperation.HighSimilarityA high-similarity palm exists
FailedOperation.PalmCapacityFullThe capacity of the user's Palm Print Search Hot Library has reached the 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.SmsCodeEmptySMS verification code is empty
InvalidParameterValue.RefreshTokenEmptyRefresh token is empty
InvalidParameterValue.SmsCodeNotMatchIncorrect SMS verification code
InvalidParameterValue.PhoneNoNotMatchThe phone number does not match the verification code session
ResourceNotFound.SmsSessionNotExistThe verification code session does not exist or has expired
ResourceNotFound.RefreshTokenNotExistThe refresh token does not exist or has expired
ResourceExhausted.SmsResendTooFrequentSMS verification codes are being sent too frequently
ResourceExhausted.SmsMaxVerifyAttemptsToo many verification code attempts
FailedOperation.SmsSendFailedFailed to send the SMS