Skip to main content
POST
/
v1
/
issuing
/
cardholders
Create Cardholder
curl --request POST \
  --url https://api-sandbox.uqpaytech.com/api/v1/issuing/cardholders \
  --header 'Content-Type: application/json' \
  --header 'x-auth-token: <api-key>' \
  --header 'x-idempotency-key: <x-idempotency-key>' \
  --data '
{
  "email": "demo@example.com",
  "first_name": "Emily",
  "last_name": "Toy",
  "country_code": "SG",
  "phone_number": "86683306",
  "date_of_birth": "1990-01-01",
  "gender": "MALE",
  "nationality": "SG",
  "document_type": "pdf",
  "document": "<string>"
}
'
{
  "cardholder_id": "7c4ff2cd-1bf6-4aaa-bf16-266771425011",
  "cardholder_status": "SUCCESS",
  "idv_verification_url": "https://idv.sumsub.com/verify/abc123",
  "idv_url_expires_at": "2026-04-10T10:00:00+08:00"
}

Authorizations

x-auth-token
string
header
required

The API token for login provided by UQPay.

Headers

x-on-behalf-of
string

Specifies the sub-account on whose behalf the request is made. This should be set to the account_id, which can be retrieved via the List Connected Accounts. If omitted or empty, the request is executed using the master account. More information at Connected Accounts.

x-idempotency-key
string<uuid>
required

A unique identifier (UUID) used to maintain operation idempotency, ensuring that repeated executions of the same operation do not result in unintended effects or duplication. It helps preserve data consistency in the face of network errors, retries, or failures.

Body

application/json
email
string
required

The cardholder’s email address.

Example:

"demo@example.com"

first_name
string
required

The first name of the cardholder. Must be between 1 and 40 characters, containing only alphabetic characters and spaces. Spaces are not allowed at the beginning or end of the name.

Example:

"Emily"

last_name
string
required

The last name of the cardholder. Must be between 1 and 40 characters, containing only alphabetic characters and spaces. Spaces are not allowed at the beginning or end of the name.

Example:

"Toy"

country_code
string
required

Two-letter country code ISO 3166-1 alpha-2.

Maximum string length: 2
Example:

"SG"

phone_number
string
required

The cardholder’s phone number.

See [Phone Number Validation Rules For Cardholder](/card-issuance/v1.6/guide/Phone Number Validation Rules for Cardholder) for length validation details.

Example:

"86683306"

date_of_birth
string

The cardholder's birth date with yyyy-mm-dd format.

Example:

"1990-01-01"

gender
enum<string>

The cardholder's gender.

  • MALE - Male.
  • FEMALE - Female.
Available options:
MALE,
FEMALE
Example:

"MALE"

nationality
string

The cardholder's nationality in ISO 3166-1 alpha-2 format. Required for STANDARD and ENHANCED KYC levels.

Required string length: 2
Example:

"SG"

residential_address
object

The cardholder’s residential address.

identity
object

The cardholder's identity document information. Required for STANDARD and ENHANCED KYC levels.

kyc_verification
object

KYC verification information. Required for ENHANCED KYC level.

document_type
enum<string>

The type of the identification document.

Available options:
pdf,
png,
jpg,
jpeg
Example:

"pdf"

document
string

Base64 encoded identification document string, 2MB limitation.

Response

Cardholder creation successfully.

cardholder_id
string<uuid>
required

The cardholder’s unique identifier.

Example:

"7c4ff2cd-1bf6-4aaa-bf16-266771425011"

cardholder_status
enum<string>
default:SUCCESS
required

The cardholder's status.

Available options:
FAILED,
PENDING,
SUCCESS,
INCOMPLETE
idv_verification_url
string

IDV verification URL. Returned when kyc_verification.method is SUMSUB_REDIRECT.

Example:

"https://idv.sumsub.com/verify/abc123"

idv_url_expires_at
string

IDV verification URL expiration time in RFC 3339 format. Returned when kyc_verification.method is SUMSUB_REDIRECT.

Example:

"2026-04-10T10:00:00+08:00"