Saltar al contenido principal

Cuentas y clientes

Rutas​

MétodoRutaPermisoDesde
POST/auth/tokenPúblico1.1.0
DELETE/auth/tokenSesión iniciada1.1.0
POST/auth/registerPúblico1.5.0
POST/auth/reset-passwordPúblico1.5.0
GET/auth/meSesión iniciada1.1.0
PUT, PATCH/auth/meSesión iniciada1.5.0
GET/users/me/ordersSesión iniciada1.5.0
GET, POST/users/me/addressesSesión iniciada1.9.0
DELETE/users/me/addresses/{index}Sesión iniciada1.9.0

Iniciar y cerrar sesión​

POST /auth/token recibe username (usuario o correo) y password, y responde 201 con token, token_type, expires_at y el objeto user. Consulta Token Bearer.

Errores: 401 notiwoo_invalid_credentials. El mensaje es el mismo si el usuario no existe o si la contraseña es incorrecta.

DELETE /auth/token revoca el token de la petición y responde { "revoked": true }. Si la petición no usó un token, responde 404 notiwoo_token_not_found.

Objeto usuario​

{
"id": 42,
"username": "cliente@example.test",
"email": "cliente@example.test",
"display_name": "Ana Pérez",
"first_name": "Ana",
"last_name": "Pérez",
"roles": ["customer"],
"billing": { "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": "", "state": "", "postcode": "", "phone": "", "country": "CO" },
"capabilities": { "manage_woocommerce": false, "edit_posts": false, "read": true }
}

Usa capabilities.manage_woocommerce para saber si el usuario puede usar las rutas de gestión.

Registrar un cliente​

POST /auth/register

CampoTipoObligatorioNotas
emailstringSíSerá también el nombre de usuario.
passwordstringSíMínimo 8 caracteres.
first_name, last_name, phonestringNoSe guardan en los datos de facturación.

Crea un usuario con rol customer y responde 201 con un token, igual que /auth/token.

Errores: 400 notiwoo_invalid_email, 400 notiwoo_weak_password, 409 notiwoo_user_exists.

Restablecer la contraseña​

POST /auth/reset-password con { "email": "..." }. Responde siempre 200 con un mensaje, exista o no la cuenta, para no revelar qué correos están registrados. Si la cuenta existe, WordPress envía su correo de restablecimiento.

Perfil​

GET /auth/me devuelve el objeto usuario.

PUT /auth/me actualiza solo los campos enviados: first_name, last_name, display_name, address_1 (alias address), address_2, city, state, postcode, phone y country. El nombre y los apellidos se guardan en el usuario de WordPress; el resto, en los datos de facturación. Responde con el usuario actualizado.

curl -X PUT https://tienda.example.test/wp-json/notiwoo/v1/auth/me \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"phone": "+57 300 000 0000", "city": "Bogotá"}'

Pedidos del cliente​

GET /users/me/orders lista los pedidos del usuario autenticado.

ParámetroNotas
page, per_pagePaginación estándar.
statusUno o varios estados separados por comas, con o sin prefijo wc-. Por defecto, todos.

Cada pedido tiene la estructura de WooCommerce (id, status, total, billing, line_items…) más status_nice (estado legible), order_type_slug y order_type (modalidad).

Direcciones guardadas​

GET /users/me/addresses responde { "addresses": [...], "count": 1 }.

POST /users/me/addresses guarda una dirección solo si hay cobertura de domicilio:

CampoObligatorio
addressSí
citySí
postcode, doorbell (apartamento, timbre), first_name, last_nameNo

El país siempre es el de la tienda.

curl -X POST https://tienda.example.test/wp-json/notiwoo/v1/users/me/addresses \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"address": "Calle 10 # 20-30", "city": "Bogotá", "postcode": "110111", "doorbell": "Apto 402"}'
  • Con cobertura: 201 con deliverable: true, la dirección guardada, el resultado de la comprobación (check: distancia y tarifa) y la lista completa.
  • Sin cobertura: 200 con deliverable: false y reason. No se guarda nada.
  • Faltan datos: 422 notiwoo_missing_address_fields.

DELETE /users/me/addresses/{index} borra por posición, empezando en 0, y devuelve la lista reindexada. Si la posición no existe, responde 404 notiwoo_address_not_found.