Clientes
Crea, consulta y actualiza los clientes de tu proyecto. También puedes crearlos al vuelo al suscribir con subscriptions.create.
Métodos
Customer
Así se ve el objeto que devuelven los métodos de este módulo.
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador, empieza por cus_ |
name | string | Nombre completo |
email | string | Email, único en el proyecto |
phone | string | null | Número local sin indicativo |
phoneCountry | string | País del teléfono (ISO 3166-1) |
document | { type; number } | null | Tipo CC, CE, NIT, PP o TI y número |
addressLine | string | null | Dirección |
description | string | null | Nota interna |
externalId | string | null | Id en tu sistema, único |
metadata | Record<string, string> | Tus datos propios |
customFields | Record<string, string> | Campos personalizados configurados en el panel |
source | "manual" | "checkout" | "api" | Origen |
livemode | boolean | true si se creó con una llave live |
createdAt | string | Fecha de creación |
updatedAt | string | Fecha de la última edición |
Crear un cliente
landapay.customers.create(params, options?)
Si ya existe un cliente con ese email o externalId recibes un InvalidRequestError con código email_taken o external_id_taken y el id existente en error.details.existingId.
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
nameobligatorio | string | Nombre completo |
emailobligatorio | string | Email del cliente |
phone | string | null | Número local sin indicativo |
phoneCountry | string | CO por defecto |
document | { type; number } | null | Documento de identidad |
addressLine | string | null | Dirección |
description | string | null | Nota interna |
externalId | string | null | Id del cliente en tu sistema |
metadata | Record<string, string | number | boolean | null> | Hasta 50 pares llave/valor. Al actualizar se combina con la actual; null en una llave la borra |
customFields | Record<string, string | number | boolean | null> | Valores de los campos personalizados del proyecto |
options | RequestOptions | Opcional. idempotencyKey, timeout (ms) y maxRetries solo para esta llamada |
Devuelve
Promise<Customer>
const customer = await landapay.customers.create({ name: "María Gómez", email: "[email protected]", document: { type: "CC", number: "1020304050" }, externalId: "user_42",});Obtener un cliente
landapay.customers.retrieve(id, options?)
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
idobligatorio | string | Id del cliente (cus_...) |
options | RequestOptions | Opcional. idempotencyKey, timeout (ms) y maxRetries solo para esta llamada |
Devuelve
Promise<Customer>
const customer = await landapay.customers.retrieve("cus_ABCDEFGHJKLMNPQR");Actualizar un cliente
landapay.customers.update(id, params, options?)
Acepta los campos de create, todos opcionales; null borra los opcionales. Los datos de facturación quedan bloqueados mientras el cliente tenga suscripciones activas.
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
idobligatorio | string | Id del cliente (cus_...) |
paramsobligatorio | CustomerUpdateParams | Campos a cambiar |
options | RequestOptions | Opcional. idempotencyKey, timeout (ms) y maxRetries solo para esta llamada |
Devuelve
Promise<Customer>
await landapay.customers.update("cus_ABCDEFGHJKLMNPQR", { phone: "3001234567", metadata: { segment: "pyme" },});Obtener o crear un cliente
landapay.customers.getOrCreateId(params, options?)
Crea el cliente y devuelve su id, o devuelve el id del que ya tiene ese email o externalId. Es lo que usa subscriptions.create con un cliente en línea.
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
paramsobligatorio | CustomerCreateParams | Datos del cliente |
options | RequestOptions | Opcional. idempotencyKey, timeout (ms) y maxRetries solo para esta llamada |
Devuelve
Promise<string>
const customerId = await landapay.customers.getOrCreateId({ name: "María Gómez", email: "[email protected]",});