Welmo Technology Personal Information Collection List
| Item | Content |
|---|---|
| Document Version | v1.0 |
| Publication Date | April 7, 2026 |
| Effective Date | April 14, 2026 |
| Last Updated | April 7, 2026 |
| Document ID | WELMO-LEGAL-03 |
| Applicable Entity | Henan Welmo Technology Co., Ltd. |
| Nature | Appendix A to the Privacy Policy (Document 02) |
This English version is a courtesy translation. In case of any discrepancy between the Chinese and English versions, the Chinese version shall prevail.
This list is the legal appendix to the Privacy Policy and enumerates field-by-field every personal information item collected by Welmo Technology on its websites and the WeChat Mini-Program "Welmo Perks". The list is in strict one-to-one correspondence with the database models in the product code, and serves as the basis for regulatory inspection, user inquiry, and compliance audit.
The "Field Name" column corresponds to the actual MySQL column names in the Welmo backend (
welmo-api) database tables. If you find any discrepancy between this list and actual product use, please report it to legal@welmotech.com.
1. Overview
Welmo Technology collects personal information on the principle of "data minimization". All information is grouped into four business scenarios:
| ID | Scenario | Database Table | Collection Trigger |
|---|---|---|---|
| A | Account registration and login | users | When you first use the Service |
| B | Benefit activation and fulfillment | user_subscriptions | When you activate a benefit and submit fulfillment information |
| C | Monthly refill claims | refill_records | When you claim a monthly Welmo Spices refill |
| D | Image and video uploads | media_files (OSS path + metadata) | When you upload pet memorial imagery or trial videos |
2. Field List
A. Account Registration and Login (users table)
| Field | Type | Purpose | Required | Method | Retention | Legal Basis |
|---|---|---|---|---|---|---|
id | Auto-increment PK | Unique account ID | System-generated | Stored | Account lifetime | System necessary |
phone | VARCHAR(20) | Identity verification, fulfillment notifications, password recovery | Yes | Encrypted in transit, plaintext at rest (for business matching), indexed | 90 days after deletion | PIPL §13(2) Contract necessity |
password_hash | VARCHAR(255) | Website password authentication (password-registered users only) | No (only for password registration) | bcrypt one-way hash | 90 days after deletion | PIPL §13(2) |
open_id | VARCHAR(100), UNIQUE | WeChat identity for Mini-Program login | No (only for WeChat login) | Plaintext | 90 days after deletion | PIPL §13(2) |
nickname | VARCHAR(100) | Personalized display | No | Plaintext | 90 days after deletion | PIPL §13(1) Consent |
created_at | Timestamp | Account creation audit | System-generated | Stored | Account lifetime | System necessary |
updated_at | Timestamp | Profile update audit | System-generated | Stored | Account lifetime | System necessary |
Notes:
- WeChat
union_idandsession_keyreturned by the WeChat API are used in memory only (for decryption) and are not persisted. - SMS verification codes (
sms_code) are cached server-side only during the short send-verify window (default 5 minutes) and are not stored long-term.
B. Benefit Activation and Fulfillment (user_subscriptions table)
| Field | Type | Purpose | Required | Applies To | Retention | Legal Basis |
|---|---|---|---|---|---|---|
id | Auto-increment PK | Subscription record ID | System-generated | All | Subscription period + 3 years | System necessary |
user_id | FK → users.id | Link to your account | System-generated | All | Same | System necessary |
code | VARCHAR(20) | Your purchase order number, used as the activation credential | Yes | All | Same | PIPL §13(2) |
phone | VARCHAR(20) | Phone snapshot at activation | Yes | All | Same | PIPL §13(2) |
receiver_name | VARCHAR(50) | Recipient name | Required for Spices/Pet | Spices/Pet | Same | PIPL §13(2) |
province | VARCHAR(50) | Recipient province | Required for Spices/Pet | Spices/Pet | Same | PIPL §13(2) |
city | VARCHAR(50) | Recipient city | Required for Spices/Pet | Spices/Pet | Same | PIPL §13(2) |
district | VARCHAR(50) | Recipient district | Required for Spices/Pet | Spices/Pet | Same | PIPL §13(2) |
addr_detail | VARCHAR(255) | Detailed shipping address | Required for Spices/Pet | Spices/Pet | Same | PIPL §13(2) |
wechat_id | VARCHAR(100) | WeChat ID for contact | Required for Greens, optional otherwise | All | Same | PIPL §13(1) Consent |
douyin_id | VARCHAR(100) | Douyin ID for contact | Required for Greens, optional otherwise | All | Same | PIPL §13(1) Consent |
email | VARCHAR(255) | Email for contact | Required for Greens, optional otherwise | All | Same | PIPL §13(1) Consent |
order_no | VARCHAR(100) | External e-commerce order number | Yes | The Greens | Same | PIPL §13(2) |
review_screenshot | VARCHAR (OSS path) | Review screenshot file path | Yes | The Greens | Same | PIPL §13(2) |
trial_video_key | VARCHAR (OSS path) | Trial video file path | Yes | The Greens | Same | PIPL §13(2) |
video_authorized | Boolean | Whether to authorize Welmo to use the trial video for marketing | Yes (must be true to submit) | The Greens | Same | PIPL §14 Separate consent |
feedback_positive | TEXT | Positive feedback | No | The Greens | Same | PIPL §13(1) |
feedback_negative | TEXT | Improvement suggestions | No | The Greens | Same | PIPL §13(1) |
start_at | Timestamp | Benefit start time | System-generated | All | Same | System necessary |
end_at | Timestamp | Benefit end time | System-generated | All | Same | System necessary |
status | INT enum | Review status (0 pending / 1 approved / 2 second review / 3 activated) | System-generated | All | Same | System necessary |
C. Monthly Refill Claims (refill_records table — Spices only)
| Field | Type | Purpose | Required | Retention | Legal Basis |
|---|---|---|---|---|---|
id | Auto-increment PK | Claim record ID | System-generated | 3 years from shipment | System necessary |
user_id | FK → users.id | Link to user | System-generated | Same | System necessary |
subscription_id | FK → user_subscriptions.id | Link to subscription | System-generated | Same | System necessary |
apply_month | CHAR(7) (YYYY-MM) | Claim month (deduplication) | System-generated | Same | System necessary |
receiver_name | VARCHAR(50) | Recipient name snapshot (defaults from subscription, can be overridden) | Yes | Same | PIPL §13(2) |
receiver_phone | VARCHAR(20) | Recipient phone snapshot | Yes | Same | PIPL §13(2) |
receiver_addr | TEXT | Recipient address snapshot | Yes | Same | PIPL §13(2) |
shipping_status | INT enum | Shipping status (0 pending / 1 shipped / 2 delivered) | System-generated | Same | System necessary |
tracking_no | VARCHAR(100) | Courier tracking number | Filled by admin | Same | PIPL §13(2) |
created_at | Timestamp | Claim time | System-generated | Same | System necessary |
D. Image and Video Uploads (media_files table)
| Field | Type | Purpose | Required | Retention | Legal Basis |
|---|---|---|---|---|---|
id | Auto-increment PK | File record ID | System-generated | Same as subscription | System necessary |
user_id | FK → users.id | Link to uploader | System-generated | Same | System necessary |
subscription_id | FK → user_subscriptions.id | Link to specific benefit | System-generated | Same | System necessary |
file_type | INT enum | File type (image / video / thumbnail) | System-generated | Same | System necessary |
file_size | BIGINT | File size in bytes | System-generated | Same | System necessary |
oss_key | VARCHAR(500) | OSS storage path | System-generated | Same | System necessary |
thumbnail_key | VARCHAR(500) | Thumbnail OSS path | System-generated | Same | System necessary |
created_at | Timestamp | Upload time | System-generated | Same | System necessary |
| File contents | Binary file | Image/video you actively upload | Yes (in upload scenarios) | Same | PIPL §14 Separate consent (sensitive personal information) |
Notes:
- File entities are stored in Alibaba Cloud OSS (Hong Kong node); the Welmo database records only OSS paths and metadata, and does not read or parse file contents;
- File size limits: each image ≤ 2 MB, each video ≤ 10 MB;
- LumaPet quota per pet: ≤ 20 photos + ≤ 5 videos;
- Browsing access is granted via OSS one-time signed URLs that expire in 2 hours by default;
- Files may contain portraits of you or others, constituting sensitive personal information, the processing of which requires your separate consent (see Document 06).
E. Temporary / In-Memory Information (Not Persisted)
| Item | Use | Method |
|---|---|---|
WeChat union_id | Returned by WeChat for identification (when business needs) | Used in memory only during login request handling, not written to database |
WeChat session_key | Decrypt WeChat user-sensitive data | Same |
| SMS verification code | Mobile binding, registration, login verification | Cached server-side for 5 minutes, then auto-expired |
| JWT Access Token | Session continuity | Held by client; user 7 days / admin 8 hours |
| OSS signed URL | Temporary authorization to access images/videos | Issued by backend on demand, 2-hour expiry |
F. Server Logs (Auto-Generated, Not User-Submitted)
| Field | Source | Use | Retention |
|---|---|---|---|
| Client IP address | HTTP request header | Rate limiting (IP token bucket), security audit | 6 months |
| User-Agent | HTTP request header | Browser/client identification, compatibility diagnosis | 6 months |
| Request time | Server clock | Troubleshooting | 6 months |
| HTTP status code | Server response | Service quality monitoring | 6 months |
X-Request-ID | Server-generated | Per-request tracing | 6 months |
Welmo Technology does not log business fields from request bodies (POST bodies), so there is no scenario where logs contain personal information such as phone numbers or addresses.
3. Information We Do Not Collect
To honor the principle of data minimization and respect for your privacy, Welmo Technology proactively declares that it does not collect the following:
- ❌ IMEI, IDFA, IDFV, Android ID, device serial numbers, or other unique device identifiers
- ❌ Your precise geolocation (GPS, GNSS, Wi-Fi positioning, cell tower positioning)
- ❌ Your contacts, photo album (except for content you actively upload), microphone, camera (except for content you actively upload), calendar, or SMS content
- ❌ Lists of other applications installed on your device
- ❌ Your browsing history (other than within the Service itself)
- ❌ Your payment passwords, bank card numbers, CVVs, or other payment credentials (purchases are handled by external e-commerce; Welmo Technology does not have access)
- ❌ Your government-issued ID numbers (national ID, passport, social security number, etc.)
- ❌ Raw biometric information (fingerprints, iris, voiceprint, facial feature templates)
4. Field Reconciliation
This list corresponds one-to-one with the GORM models in the Welmo backend code (welmo-api/models/):
| Section | Code Model |
|---|---|
| Section A | welmo-api/models/user.go |
| Section B | welmo-api/models/subscription.go |
| Section C | welmo-api/models/refill_record.go |
| Section D | welmo-api/models/media.go |
If new fields are added to the code in the future, this list will be updated synchronously (incremented by +0.1).
5. Contact Us
For any questions about the fields, purposes, or methods in this list, please email legal@welmotech.com. We will respond within 15 business days.
Revision History
| Version | Date | Changes |
|---|---|---|
| v1.0 | April 7, 2026 | Initial release |
All rights of final interpretation reserved by Henan Welmo Technology Co., Ltd.
Document ID: WELMO-LEGAL-03 · Version v1.0 · April 7, 2026