Desarrollador
Clientes
CRUD de clientes con portal. El API guarda siempre el rol CLIENT.
El cuerpo de alta es CustomerCreate. No envíes types: el API lo guarda como CLIENT. Cuenta PERSONAL pide firstName. Cuenta BUSINESS pide companyName. createContact en true, o ausente, crea además un contacto SHIPPER con los mismos datos. false crea solo el cliente. La respuesta no trae la contraseña del portal.
Métodos
| Método | HTTP | Scope |
|---|---|---|
| customers.list() | GET /org-api/v1/customers | customers:read o organization:read |
| customers.retrieve(id) | GET /org-api/v1/customers/:id | customers:read o organization:read |
| customers.create(body) | POST /org-api/v1/customers | customers:write o organization:read |
| customers.update(id, body) | PATCH /org-api/v1/customers/:id | customers:write o organization:read |
| customers.delete(id) | DELETE /org-api/v1/customers/:id | customers:write o organization:read |
const customer = await traky.customers.create({
accountType: "PERSONAL",
firstName: "Ana",
lastName: "Paz",
email: "ana@example.com",
createContact: false,
});
await traky.customers.update(customer.id, { city: "Quito" });
await traky.customers.delete(customer.id);Listar
const page = await traky.customers.list({
page: 1,
limit: 20,
search: "Ana",
isActive: true,
types: ["CLIENT"],
});types se envía unido por coma. sortBy acepta recent, oldest, name-asc y name-desc. La página trae data y pagination.
Borrado
{
"id": "cus_01HZXMPLACE",
"deleted": true
}