Cardholders

Cardholder management APIs including creation, update, and query operations.

Create Cardholder

Create a cardholder under the merchant. First name, last name, and email are required.

ItemDetails
EndpointPOST /api/v1/merchant/cardholder/createCardholder

Request Parameters

FieldTypeRequiredDescription

clientRequestId

String(64)

✅

Idempotent request ID

firstName

String(50)

✅

Cardholder first name

lastName

String(20)

✅

Cardholder last name

email

String(100)

✅

Email address, must be valid format

mobile

String(20)

—

Mobile number

mobileAreaCode

String(10)

—

Mobile area code, e.g. +86

birthday

String(20)

—

Date of birth, e.g. 1990-01-01

nationality

String(2)

—

Nationality, ISO 3166-1 alpha-2 code

addressRegionCode

String(2)

—

Address country code

addressStateCode

String(50)

—

Address state/province code

addressCityCode

String(50)

—

Address city code

addressDetailLine1

String(200)

—

Address line 1

addressDetailLine2

String(200)

—

Address line 2

addressPostalCode

String(20)

—

Postal code

remark

String(200)

—

Remark

Request Example

{
  "clientRequestId": "REQ_20260101_001",
  "firstName": "John",
  "lastName": "Doe",
  "email": "john.doe@example.com",
  "mobile": "13800138000",
  "mobileAreaCode": "+86",
  "birthday": "1990-01-01",
  "nationality": "CN",
  "addressRegionCode": "CN",
  "addressStateCode": "GD",
  "addressCityCode": "SZ",
  "addressDetailLine1": "No.1 Test Road",
  "addressPostalCode": "518000"
}

Response Parameters

FieldTypeDescription
respCodeStringResponse code
respMsgStringResponse message
dataObjectCardholder info
data.cardholderIdLongCardholder ID
data.firstNameStringFirst name
data.lastNameStringLast name
data.emailStringEmail
data.mobileStringMobile number
data.mobileAreaCodeStringMobile area code
data.birthdayStringDate of birth
data.nationalityStringNationality
data.addressRegionCodeStringAddress country code
data.addressStateCodeStringState/province code
data.addressCityCodeStringCity code
data.addressDetailLine1StringAddress line 1
data.addressDetailLine2StringAddress line 2
data.addressPostalCodeStringPostal code
data.remarkStringRemark

Response Example

{
  "respCode": "20000",
  "respMsg": "success",
  "data": {
    "cardholderId": 300001,
    "firstName": "John",
    "lastName": "Doe",
    "email": "john.doe@example.com",
    "mobile": "13800138000",
    "mobileAreaCode": "+86",
    "birthday": "1990-01-01",
    "nationality": "CN",
    "addressRegionCode": "CN",
    "addressStateCode": "GD",
    "addressCityCode": "SZ",
    "addressDetailLine1": "No.1 Test Road",
    "addressDetailLine2": null,
    "addressPostalCode": "518000",
    "remark": null
  }
}

Update Cardholder

Update an existing cardholder's information.

ItemDetails
EndpointPOST /api/v1/merchant/cardholder/updateCardholder

Request Parameters

FieldTypeRequiredDescription

cardholderId

Long

✅

Cardholder ID

firstName

String(50)

✅

First name

lastName

String(20)

✅

Last name

email

String(100)

✅

Email address

mobile

String(20)

—

Mobile number

mobileAreaCode

String(10)

—

Mobile area code

birthday

String(20)

—

Date of birth

nationality

String(2)

—

Nationality

addressCountryCode

String(2)

—

Address country code

addressStateCode

String(50)

—

State/province code

addressCityCode

String(50)

—

City code

addressDetailLine1

String(200)

—

Address line 1

addressDetailLine2

String(200)

—

Address line 2

addressPostalCode

String(20)

—

Postal code

remark

String(200)

—

Remark

Request Example

{
  "cardholderId": 300001,
  "firstName": "John",
  "lastName": "Smith",
  "email": "john.smith@example.com",
  "mobile": "13800138000",
  "mobileAreaCode": "+86",
  "birthday": "1990-01-01",
  "nationality": "CN",
  "addressCountryCode": "CN",
  "addressStateCode": "GD",
  "addressCityCode": "GZ",
  "addressDetailLine1": "No.2 Test Road",
  "addressPostalCode": "510000"
}

Response Parameters

Same as Create Cardholder response parameters.


Query Cardholders

Paginated query of cardholders under the merchant, filterable by cardholder ID or idempotent request ID.

ItemDetails
EndpointPOST /api/v1/merchant/cardholder/queryCardholder

Request Parameters

FieldTypeRequiredDescription

cardholderId

Long

—

Cardholder ID, queries all if omitted

clientRequestId

String(64)

—

Idempotent request ID for filtering

pageNum

Integer

✅

Page number, minimum 1

pageSize

Integer

✅

Page size, range 1–100

Request Example

{
  "pageNum": 1,
  "pageSize": 10
}

Response Parameters

FieldTypeDescription
respCodeStringResponse code
respMsgStringResponse message
dataObjectPaginated data
data.totalRecordsLongTotal records
data.pageSizeLongPage size
data.currentLongCurrent page (synonym of pageNum)
data.pageNumLongCurrent page number
data.totalPagesLongTotal pages
data.records[]ArrayCardholder list for current page, each item same as Create Cardholder response

Response Example

{
  "respCode": "20000",
  "respMsg": "success",
  "data": {
    "totalRecords": 1,
    "pageSize": 10,
    "current": 1,
    "pageNum": 1,
    "totalPages": 1,
    "records": [
      {
        "cardholderId": 300001,
        "firstName": "John",
        "lastName": "Doe",
        "email": "john.doe@example.com",
        "mobile": "13800138000",
        "mobileAreaCode": "+86",
        "birthday": "1990-01-01",
        "nationality": "CN",
        "addressRegionCode": "CN",
        "addressStateCode": "GD",
        "addressCityCode": "SZ",
        "addressDetailLine1": "No.1 Test Road",
        "addressDetailLine2": null,
        "addressPostalCode": "518000",
        "remark": null
      }
    ]
  }
}