Saltar al contenido principal

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.

CampoTipoDescripción
idstringIdentificador, empieza por cus_
namestringNombre completo
emailstringEmail, único en el proyecto
phonestring | nullNúmero local sin indicativo
phoneCountrystringPaís del teléfono (ISO 3166-1)
document{ type; number } | nullTipo CC, CE, NIT, PP o TI y número
addressLinestring | nullDirección
descriptionstring | nullNota interna
externalIdstring | nullId en tu sistema, único
metadataRecord<string, string>Tus datos propios
customFieldsRecord<string, string>Campos personalizados configurados en el panel
source"manual" | "checkout" | "api"Origen
livemodebooleantrue si se creó con una llave live
createdAtstringFecha de creación
updatedAtstringFecha 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

CampoTipoDescripción
nameobligatoriostringNombre completo
emailobligatoriostringEmail del cliente
phonestring | nullNúmero local sin indicativo
phoneCountrystringCO por defecto
document{ type; number } | nullDocumento de identidad
addressLinestring | nullDirección
descriptionstring | nullNota interna
externalIdstring | nullId del cliente en tu sistema
metadataRecord<string, string | number | boolean | null>Hasta 50 pares llave/valor. Al actualizar se combina con la actual; null en una llave la borra
customFieldsRecord<string, string | number | boolean | null>Valores de los campos personalizados del proyecto
optionsRequestOptionsOpcional. idempotencyKey, timeout (ms) y maxRetries solo para esta llamada

Devuelve

Promise<Customer>

EjemploTypeScript
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

CampoTipoDescripción
idobligatoriostringId del cliente (cus_...)
optionsRequestOptionsOpcional. idempotencyKey, timeout (ms) y maxRetries solo para esta llamada

Devuelve

Promise<Customer>

EjemploTypeScript
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

CampoTipoDescripción
idobligatoriostringId del cliente (cus_...)
paramsobligatorioCustomerUpdateParamsCampos a cambiar
optionsRequestOptionsOpcional. idempotencyKey, timeout (ms) y maxRetries solo para esta llamada

Devuelve

Promise<Customer>

EjemploTypeScript
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

CampoTipoDescripción
paramsobligatorioCustomerCreateParamsDatos del cliente
optionsRequestOptionsOpcional. idempotencyKey, timeout (ms) y maxRetries solo para esta llamada

Devuelve

Promise<string>

EjemploTypeScript
const customerId = await landapay.customers.getOrCreateId({  name: "María Gómez",  email: "[email protected]",});