curl --request POST \
--url https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders/{id} \
--header 'Content-Type: application/json' \
--header 'x-auth-token: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"email": "updated-8d95ee6f-3638-4f7d-9eb9-459d105fa830@example.com"
}
'import requests
url = "https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders/{id}"
payload = { "email": "updated-8d95ee6f-3638-4f7d-9eb9-459d105fa830@example.com" }
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"x-auth-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-idempotency-key': '<x-idempotency-key>',
'x-auth-token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({email: 'updated-8d95ee6f-3638-4f7d-9eb9-459d105fa830@example.com'})
};
fetch('https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => 'updated-8d95ee6f-3638-4f7d-9eb9-459d105fa830@example.com'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-auth-token: <api-key>",
"x-idempotency-key: <x-idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders/{id}"
payload := strings.NewReader("{\n \"email\": \"updated-8d95ee6f-3638-4f7d-9eb9-459d105fa830@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("x-auth-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders/{id}")
.header("x-idempotency-key", "<x-idempotency-key>")
.header("x-auth-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"updated-8d95ee6f-3638-4f7d-9eb9-459d105fa830@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-idempotency-key"] = '<x-idempotency-key>'
request["x-auth-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"updated-8d95ee6f-3638-4f7d-9eb9-459d105fa830@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"cardholder_id": "7d6a7ba0-28b7-4f2d-99cb-05e4286bd0dc",
"cardholder_status": "SUCCESS"
}Update Cardholder
通过传入的参数值更新指定的签发持卡人对象。未提供的参数保持不变(名字和姓氏不可更新)。
curl --request POST \
--url https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders/{id} \
--header 'Content-Type: application/json' \
--header 'x-auth-token: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"email": "updated-8d95ee6f-3638-4f7d-9eb9-459d105fa830@example.com"
}
'import requests
url = "https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders/{id}"
payload = { "email": "updated-8d95ee6f-3638-4f7d-9eb9-459d105fa830@example.com" }
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"x-auth-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-idempotency-key': '<x-idempotency-key>',
'x-auth-token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({email: 'updated-8d95ee6f-3638-4f7d-9eb9-459d105fa830@example.com'})
};
fetch('https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => 'updated-8d95ee6f-3638-4f7d-9eb9-459d105fa830@example.com'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-auth-token: <api-key>",
"x-idempotency-key: <x-idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders/{id}"
payload := strings.NewReader("{\n \"email\": \"updated-8d95ee6f-3638-4f7d-9eb9-459d105fa830@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("x-auth-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders/{id}")
.header("x-idempotency-key", "<x-idempotency-key>")
.header("x-auth-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"updated-8d95ee6f-3638-4f7d-9eb9-459d105fa830@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-idempotency-key"] = '<x-idempotency-key>'
request["x-auth-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"updated-8d95ee6f-3638-4f7d-9eb9-459d105fa830@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"cardholder_id": "7d6a7ba0-28b7-4f2d-99cb-05e4286bd0dc",
"cardholder_status": "SUCCESS"
}授权
由 UQPAY 提供的登录 API Token。
请求头
指定代表哪个子账户发起请求。应设置为 account_id,该值可通过 List Connected Accounts 接口获取。若省略或为空,则请求以主账户身份执行。
更多信息参见 关联账户。
用于维持操作幂等性的唯一标识符(UUID),确保同一操作的重复执行不会产生意外影响或重复。它有助于在网络错误、重试或失败的情况下保持数据一致性。
路径参数
资源的全局唯一标识符(UUID v4)。
"71fdb0fe-9682-457a-9361-e8868694f12f"
请求体
持卡人的电子邮箱地址。
"demo@example.com"
持卡人的出生日期,格式为 yyyy-mm-dd。持卡人须年满 18 周岁且未满 80 周岁。
"1990-01-01"
持卡人的性别。
MALE- 男。FEMALE- 女。
MALE, FEMALE "MALE"
持卡人的国籍,采用 ISO 3166-1 alpha-2 格式。STANDARD 和 ENHANCED KYC 等级必填。
2"SG"
持卡人的居住地址。
所有字段只接受字母(A-Z、a-z)、数字(0-9)、空格,以及以下标点:, . ' / # ( ) - &。包含其他任何字符的请求都会被拒绝——请修正后重新提交。为空的可选字段不做校验。
Show child attributes
Show child attributes
持卡人的身份证件及补充材料。仅更新补充材料时,无需重传证件信息。
Show child attributes
Show child attributes
KYC 验证信息。ENHANCED KYC 等级必填。
Show child attributes
Show child attributes
身份证件的类型。
pdf, png, jpg, jpeg "pdf"
Base64 编码的身份证件字符串,限制 2MB。
响应
成功更新持卡人。
持卡人的唯一标识符。
"7c4ff2cd-1bf6-4aaa-bf16-266771425011"
持卡人的状态。
FAILED, PENDING, SUCCESS, INCOMPLETE IDV 验证 URL。当 kyc_verification.method 为 SUMSUB_REDIRECT 时返回。
"https://idv.sumsub.com/verify/abc123"
IDV 验证 URL 的过期时间,RFC 3339 格式。当 kyc_verification.method 为 SUMSUB_REDIRECT 时返回。
"2026-04-10T10:00:00+08:00"

