Skip to main content
PUT
Update customer

Authorizations

API-KEY
string
header
required

Your partner API key. The key must carry the customers permission.

Headers

Api-Version
string
default:2026-09.1
required

The API version this request targets. Required on every /api/v0/* call. Format YYYY-MM.<release>; 2026-09.1 is the latest. The version that served the request is echoed back on the response. Missing, malformed or unsupported values are rejected with 400.

Pattern: ^\d{4}-\d{2}\.\d+$

Path Parameters

userId
string
required

The customer reference id returned by create — a cus_-prefixed string, not a UUID.

Response

The updated customer. For an individual, the response leaves out documents, questionnaire and customFields; call Get customer for those. The questionnaire can't be updated.

userId
string

Endl's customer reference id — a cus_-prefixed string, not a UUID. This is what create returns and what goes in every /api/v0/customer/{userId} URL.

Example:

"cus_PWEhqXkPKpWXiFd96jGq"

userType
enum<string>

INDIVIDUAL or BUSINESS.

Available options:
INDIVIDUAL,
BUSINESS
status
enum<string>

Current verification status. Beyond the original eight, it can be VERIFICATION_IN_PROGRESS, ON_HOLD, AWAITING_UBO_DETAILS, VERIFICATION_PAUSED or DELETED — see the verification lifecycle. Treat unknown values as in progress. The list status filter accepts only the original eight.

Available options:
NOT_INITIATED,
INITIATED,
SUBMITTED,
IN_REVIEW,
PENDING,
COMPLETED,
REJECTED,
RESUBMISSION_REQUIRED,
ON_HOLD,
VERIFICATION_IN_PROGRESS,
VERIFICATION_PAUSED,
AWAITING_UBO_DETAILS,
DELETED
email
string

Contact email. Immutable after creation.

firstName
string

The customer's given name.

lastName
string

The customer's family name.

country
string

ISO 3166-1 alpha-3, returned in the case it was sent (e.g. are).

dateOfBirth
string

Date of birth, returned as YYYY-MM-DD.

documents
object[]

Individuals only — one entry per uploaded document. Omitted until at least one document has been uploaded. A business read has no documents array; track it through status and each beneficiaries[].status.

questionnaire
object

The customer's answers only — questionnaireId plus answers flattened to { "<sectionId>": { "<itemId>": value } }, with no items / value wrapper. A single-select answer is a scalar; a multi-select or country-multi answer is an array. questionnaireId is endlIndividualProfileQuestionnairenew for an individual and endlKybQuestionnaireBridgeTest for a business. Omitted until a questionnaire has been submitted.

phone
string

Contact phone in E.164 format — a leading + then 8–15 digits, e.g. +971500000000. An invalid phone is a 400: phone must be a valid phone number in E.164 format (e.g. +971500000000).

Pattern: ^\+[1-9]\d{7,14}$
Example:

"+971500000000"

addressLine1
string

Street address.

addressLine2
string

Second address line.

city
string

City.

state
string

State or province.

postalCode
string

Postal code.

currency
string

ISO 4217 code, stored and returned as sent (not validated).

customFields
object

Partner-facing custom fields — nationalIdNumber, whatsappNumber, telegramId — with their stored values. Best-effort; absent when none are set.

Example:
companyName
string

Registered name. BUSINESS only.

companyApplicantId
string

The provider's company applicant id. BUSINESS only.

beneficiaries
object[]

Beneficial owners (UBOs), each with its own applicantId and status.

createdOn
string<date-time>

When the customer was created. ISO-8601 UTC timestamp, e.g. 2026-10-22T09:15:30.123456Z. The number of fractional-second digits varies: .123456, .123, or none.

updatedOn
string<date-time>

When the customer was last updated. ISO-8601 UTC timestamp, e.g. 2026-10-22T09:15:30.123456Z. The number of fractional-second digits varies: .123456, .123, or none.