Browse the docs

Get cardholder KYC status

GET /v1/api-gateway/cardholder/{end_customer_id}/kyc

Returns the KYC status of the cardholder identified by your end_customer_id. API-key (B2B) credentials only.

Request

Authentication: your API key in the x-api-key header.

Path parameters

FieldTypeDescription
end_customer_id requiredstringYour end_customer_id for the cardholder, not the Moon cardholder id.

Example request

cURL

curl --request GET \
     --url 'https://api.themooncard.com/v1/api-gateway/cardholder/customer_123/kyc' \
     --header 'x-api-key: YOUR_API_KEY'

Responses

200 Success
FieldTypeDescription
status requiredstringCurrent KYC status, e.g. NOT_STARTED, IN_REVIEW, APPROVED, DECLINED, RETRY.
url requiredstring, nullableHosted verification URL last issued for this cardholder, or null.
created_at requiredstringISO-8601 timestamp.
updated_at requiredstringISO-8601 timestamp.

JSON

{
  "status": "APPROVED",
  "url": "https://verify.paywithmoon.com/kyc?token=eyJhbGciOiJIUzI1NiJ9.xyz789",
  "created_at": "2026-08-01T09:12:44.000Z",
  "updated_at": "2026-08-02T14:20:05.000Z"
}
400 Error

Validation failed, or the request was not made with an API key ("This endpoint is only available for API key (B2B) requests.").

The body is the standard error object: see Errors.

401 Error

Missing or invalid credentials, e.g. { "message": "Invalid API Key", "code": "UNAUTHORIZED" }.

The body is the standard error object: see Errors.

404 Error

Your organization could not be found (ORGANIZATION_NOT_FOUND), no cardholder has this end_customer_id (CARDHOLDER_NOT_FOUND), or KYC was never started for it ("KYC not initiated for this cardholder").

The body is the standard error object: see Errors.

500 Error

Unexpected server error. Body is { message: "Internal server error", code: "INTERNAL_SERVER_ERROR" }.

The body is the standard error object: see Errors.

Last updated April 30, 2026