Cliente API
Clientes
Accede a los datos de clientes del comerciante con client.customers — listar y obtener registros individuales de clientes.
client.customers proporciona acceso de lectura a la base de clientes del comerciante. Todas las operaciones requieren el permiso read:customers.
Permisos Requeridos
| Operación | Permiso requerido |
|---|---|
list, get | read:customers |
Mapeo HTTP
| Método | Verbo HTTP | Ruta |
|---|---|---|
list(params?) | GET | /customers |
get(id) | GET | /customers/:id |
Métodos
list
Obtiene una lista paginada de clientes.
const { data, pagination } = await client.customers.list({
page: 1,
per_page: 25,
});
data.forEach((customer) => {
console.log(`${customer.name} — ${customer.email}`);
});
console.log(`Página 1 de ${pagination.pages}`);get
Obtiene un único cliente por su ID.
const customer = await client.customers.get("365047281936");
console.log(customer.name);
console.log(customer.email);
console.log(customer.phone);Consideraciones de Privacidad de Datos
Los datos de clientes son sensibles. Al construir plugins que acceden a client.customers:
- Solo solicita
read:customerssi tu plugin genuinamente lo necesita — el permiso aparece en la pantalla de instalación del comerciante. - No almacenes PII bruta de clientes (correos, teléfonos) en tu propia base de datos a menos que sea estrictamente necesario para la funcionalidad de tu plugin.
- Sigue las políticas de retención y eliminación de datos documentadas en las pautas de publicación.
- Responde a los eventos webhook
app.uninstalledeliminando todos los datos de clientes almacenados para ese comerciante.
Manejo de Errores
import { NotFoundError, AuthorizationError } from "@whatalo/plugin-sdk";
try {
const customer = await client.customers.get("999999999999");
} catch (error) {
if (error instanceof NotFoundError) {
console.log(`Customer not found: ${error.resourceId}`);
} else if (error instanceof AuthorizationError) {
// Plugin does not have read:customers scope
console.log(`Missing scope: ${error.requiredScope}`);
} else {
throw error;
}
}Consulta Errores y Límites de Tasa para la referencia completa de clases de error.