KYC & Identity
Use this skill when the user needs to complete identity verification, upload KYC documents, or check verification status.
Available Tools
create_masterpay_user— Create a MasterPay user account (prerequisite for all MasterPay operations) |POST /api/v1/masterpay/users| Requires authget_kyc_status— Check current KYC verification status and document upload progress |GET /api/v1/masterpay/kyc/status| Requires authget_kyc_metadata— Get valid document types, occupations, nationalities, and countries for KYC forms |GET /api/v1/masterpay/kyc/metadata| Requires authsubmit_kyc— Submit KYC personal data for review (uses profile data) |POST /api/v1/masterpay/kyc/submit| Requires authupload_kyc_document— Upload a KYC document (passport, ID, proof of address) via multipart or base64 JSON |POST /api/v1/masterpay/kyc/documents| Requires authsubmit_wallet_kyc— Submit wallet-level KYC for a card wallet (requires profile phone number and identity document ID number) |POST /api/v1/masterpay/wallets/kyc| Requires authget_profile— Get user profile data used for KYC submission |GET /api/v1/profile| Requires authupdate_profile— Update user profile data (name, DOB, nationality, etc.) |PUT /api/v1/profile| Requires authget_document— Get stored identity document info |GET /api/v1/profile/document| Requires authupdate_document— Update identity document details (passport number, NRIC, etc.) |PUT /api/v1/profile/document| Requires authget_residential_address— Get residential address on file |GET /api/v1/profile/res-address| Requires authupdate_residential_address— Update residential address |PUT /api/v1/profile/res-address| Requires auth
Recommended Flows
Complete KYC Verification
Full flow from profile setup to KYC approval
- Create MasterPay user: POST /api/v1/masterpay/users — required once before any MasterPay operation
- Get metadata: GET /api/v1/masterpay/kyc/metadata — learn valid nationalities, occupations, document types
- Update profile: PUT /api/v1/profile with name, DOB, gender, phone_number, phone_country_code (with '+' prefix, e.g. '+65'), nationality, occupation, source_of_fund
- Update residential address: PUT /api/v1/profile/res-address with country_code (ISO alpha-2, e.g. 'SG'), province, city, zip_code, english_address_line_1/2/3
- Upload documents: POST /api/v1/masterpay/kyc/documents — upload passport/ID front, back, selfie, proof of address
- Submit KYC: POST /api/v1/masterpay/kyc/submit — merges profile + residential address, resolves country codes to names, and sends to MasterPay
- Poll status: GET /api/v1/masterpay/kyc/status — wait for 'approved' (can take minutes to days)
Rules
- MasterPay user must be created (POST /masterpay/users) before any KYC, wallet, or card operation — this is a one-time setup step
- Profile AND residential address must both be complete before submitting KYC — submit reads from both
- Use ISO alpha-2 country codes (e.g. 'SG', 'HK', 'MY') in residential address — the backend resolves them to full country names for MasterPay
- Phone country code in profile must include the '+' prefix (e.g. '+65') — MasterPay requires it
- Documents should be uploaded before submission — MasterPay requires passport/ID and proof of address, but our backend does not block submission without them
- KYC review can take minutes to several days — poll status periodically
- Once approved, KYC does not need to be repeated
- Document uploads support both multipart/form-data and JSON with base64 — max 15MB per file
Agent Guidance
Follow these instructions when executing this skill:
Always follow the documented flow order. Do not skip steps.
If a tool requires authentication, verify the session has a valid bearer token before calling it.
If a tool requires a transaction PIN, ask the user for it fresh each time. Never cache or log PINs.
Never expose, log, or persist secrets (passwords, tokens, full card numbers, CVVs).
If the user requests an operation outside this skill's scope, decline and suggest the appropriate skill.
If a step fails, check the error and follow the recovery guidance below before retrying.
Before any KYC operation, ensure a MasterPay user exists by calling
create_masterpay_user. This is a one-time setup. Other MasterPay handlers also auto-create the user, but calling it explicitly is good practice.Complete both profile (
update_profile) and residential address (update_residential_address) before callingsubmit_kyc. The backend validates both are present and returns 404 if either is missing.Upload documents (
upload_kyc_document) before submitting KYC. MasterPay requires them, but our backend does not block submission without them — submit will succeed, but MasterPay may reject the application.submit_wallet_kycrequires the user's profile (phone number + phone country code) and identity document (ID number) to be set first. It will fail with INCOMPLETE_PROFILE if the ID number is missing.KYC review takes minutes to days. Poll
get_kyc_statusperiodically — there are no push notifications.Use ISO alpha-2 country codes (e.g., "SG", "MY") for addresses. Include the "+" prefix for phone country codes (e.g., "+65").