Ventas y DTE
FileXpress permite la emisión de 7 tipos de Documentos Tributarios Electrónicos (DTE). A continuación, se detallan los requerimientos y ejemplos completos basados en la integración oficial.
/external/sales Casos de Uso por DTE
FC & CCF (01, 03)
Usa fc para consumidores finales y ccf para contribuyentes con NRC. En fc, los precios en invoiceProductsDetail deben incluir el IVA (precio * 1.13) para reflejar el total exacto.
FEX (07 - Exportación)
Requiere parámetros de comercio exterior: regime_id, enclouser_id e incoterm_id. Todos los productos deben marcarse como sale_exent.
NC & ND (05, 06 - Notas)
Es obligatorio incluir el array invoiceAditionalDocuments para referenciar el documento original (CCF o FC) que se está modificando.
Nota de Remisión (04 - NR)
Se utiliza nr para el traslado de bienes sin transferencia de propiedad inmediata o para ajustes de inventario entre bodegas.
Estructura del Payload
Receptor y General
| Campo | Tipo | Descripción |
|---|---|---|
| branch_id | UUID | ID de la sucursal emisora. Requerido |
| customer_id | UUID | ID del cliente receptor del DTE. Requerido |
| document_type | String | DTE: `fc, ccf, fex, nc, nd, nr`. Requerido |
| is_credit | Boolean | Indica si la venta es al crédito. Requerido |
| credit_days | Integer | Plazo en días (si es crédito). |
| observation | String | Comentarios adicionales. |
Detalle de Productos (products)
| Campo | Tipo | Descripción |
|---|---|---|
| id | UUID | ID del producto en el sistema. |
| name | String | Nombre del producto. |
| quantity | Number | Cantidad. |
| price_before_taxes | Number | Precio base unitario. |
| sale_taxed | Number | Subtotal gravado. |
| sale_exent | Number | Subtotal exento. |
| sale_not_suject | Number | Subtotal no sujeto. |
| subtotal | Number | Monto total (sumatoria de subtotales). |
| tags | Array<String> | Etiquetas personalizadas para el item. |
Pagos y Totales
| Módulo: totals | Tipo | Descripción |
|---|---|---|
| saleTotalTax | Number | Total de IVA calculado. |
| saleTotalExent | Number | Total exento. |
| saleTotalNotSuject | Number | Total no sujeto. |
| totalRent | Number | Retención de Renta (si aplica). |
| totalRetein | Number | Retención del 1% (IVA). |
Documentos Relacionados (invoiceAditionalDocuments)
Requerido para Notas de Crédito (NC) y Notas de Débito (ND)
| Campo | Tipo | Descripción |
|---|---|---|
| document_type | String | Tipo del original (`fc, ccf`). |
| document_number | String | Código de generación del original. |
| document_date | Date | Fecha de emisión del original. |
HTTP 200
{
"status": true,
"message": "Invoice created successfully",
"data": {
"sale_id": "uuid-venta",
"generation_code": "...",
"control_number": "...",
"status": "PROCESADO",
"issue_time": "...",
"total": 1130.00
}
} Get Sale Status (Show)
{
"status": true,
"data": {
"sale_id": "...",
"generation_code": "...",
"document_type": "ccf",
"status": "PROCESADO",
"payment_status": "PAGADO",
"customer": {
"legal_name": "Juan Perez S.A."
},
"totals": {
"sale_to_payment": 1130.00
}
}
} HTTP 401
{ "error": "Unathorized" }
HTTP 500
{ "error": "Server error" }
Nota Técnica: Los endpoints de Ventas utilizan el campo status para indicar el éxito de la operación, a diferencia de los catálogos que usan success.