2026-08-15 — Datos de facturación del cliente
Para el front-end y mobile del cliente, y el panel admin.
Summary
El cliente ya puede registrar sus datos de facturación y reutilizarlos en cada pedido. Se guardan en su perfil y al crear una orden se copian a ella, de modo que la orden conserva con qué datos se facturó aunque el cliente los edite después. Por ahora solo se recolecta la información: no se emite ningún documento fiscal.
Es opcional, así que el flujo actual de creación de pedidos no cambia mientras el admin no lo exija.
New
| Método | Endpoint | Rol | Para qué sirve |
|---|---|---|---|
| GET | /billing-profiles |
cliente | Listar sus datos de facturación, el predeterminado primero. |
| POST | /billing-profiles |
cliente | Registrar datos de facturación (máximo 5). |
| PUT | /billing-profiles/{id} |
cliente | Reemplazar unos datos ya guardados. |
| PUT | /billing-profiles/{id}/default |
cliente | Marcar cuáles usar por defecto. |
| DELETE | /billing-profiles/{id} |
cliente | Eliminar unos datos guardados. |
Cada registro lleva entityType (PERSONAL o JURIDICA), idNumber, name,
address y phone. En PERSONAL, name es el nombre de la persona y el
idNumber es una cédula (V- o E-); en JURIDICA, name es la razón social y
el idNumber es un RIF (J- o G-). Un idNumber que no corresponda al
entityType se rechaza con 422.
El idNumber se normaliza antes de guardarse: v12345678 y V-12.345.678 quedan
ambos como V-12345678.
La address de estos endpoints es la dirección de facturación: texto libre,
sin coordenadas, y sin relación con las direcciones de entrega de
addresses.
Changes
POST /orders (cliente)
Acepta un billingProfileId opcional. Si se omite, se usa el registro
predeterminado del cliente; si el cliente no tiene ninguno, la orden se crea sin
datos de facturación.
La response incluye un objeto billing con entity_type, id_number, name,
address y phone, o null si la orden no tiene datos. Aparece en la vista del
cliente y en la del admin; la vista del conductor nunca lo incluye.
Un billingProfileId desconocido o de otro cliente devuelve 422.
GET /admin/orders/{orderId} (admin)
El detalle de la orden incluye el mismo objeto billing.
GET y PATCH /admin/config/orders (admin)
Nuevo campo booleano billing_required. Con true, POST /orders responde 422
si el cliente no tiene datos de facturación registrados. Viene en false.