Editar una factura de forma simplificada
Descripción
Este endpoint permite editar una factura previamente creada de forma rápida y sencilla, enviando los datos del cliente, los productos y las condiciones de pago.
Al igual que en la creación simplificada, no es necesario registrar previamente todos los datos del cliente y de los productos. Si alguno no existe, la API podrá crearlo automáticamente según su configuración.
También puedes indicar si deseas enviar la factura al SIFEN para su autorización mediante el campo send.
Endpoint
PUT /api/invoices/:ID
Reemplaza :ID por el identificador de la factura que deseas editar.
Autenticación
Este endpoint requiere autenticación mediante un token Bearer.
Incluye el siguiente encabezado en la solicitud:
Authorization: Bearer TU_TOKEN
Cuerpo de la solicitud
Envía los datos de la factura en formato JSON.
Ejemplo de JSON
{
"emitDate": "2026-10-09 16:13",
"invoiceDetails": [
{
"product": {
"name": "new from api",
"sku": "napi1",
"price": "3.56",
"tax": "/api/taxes/1"
},
"amount": "6",
"discount": "0",
"discountType": null
},
{
"product": {
"name": "new from api 3",
"sku": "napi1253",
"price": "5",
"tax": null
},
"amount": "5",
"discount": "0",
"discountType": null
}
],
"condicion": 2,
"transactionType": 1,
"client": {
"idClient": "EQ5369854",
"typeId": "2",
"naturaleza": 2,
"codigoPais": "PRY",
"tipoOperacion": 2,
"email": "[email protected]",
"name": "Guerby",
"lastname": "Duval",
"phone": "+5987154522145",
"razonSocial": "Mi razón social"
},
"paymentCredit": {
"condicionOperacion": 1,
"plazo": "5",
"periodPlazo": "day"
},
"send": true
}
Descripción de los campos
Campos principales
| Campo | Tipo | Descripción |
|---|---|---|
emitDate |
string |
Fecha y hora de emisión de la factura. Formato del ejemplo: YYYY-MM-DD HH:mm. |
invoiceDetails |
array |
Lista de productos incluidos en la factura. |
condicion |
integer |
Código que identifica la condición de pago de la factura. En este ejemplo, 2 corresponde al pago a crédito. |
transactionType |
integer |
Código que identifica el tipo de transacción según la configuración de la API. |
client |
object |
Datos del cliente al que se emite la factura. |
paymentCredit |
object |
Información sobre las condiciones de pago a crédito. |
send |
boolean |
Indica si se debe enviar la factura al SIFEN. true solicita el envío; false evita solicitarlo en esta operación. |
Campos de invoiceDetails
Cada elemento del arreglo representa una línea de la factura.
| Campo | Tipo | Descripción |
|---|---|---|
product |
object |
Datos del producto incluido en la línea. |
amount |
string |
Cantidad de unidades del producto. |
discount |
string |
Valor del descuento aplicado a la línea. |
discountType |
string o null |
Tipo de descuento aplicado. Puede ser null cuando no se especifica un tipo. |
Campos de invoiceDetails[].product
| Campo | Tipo | Descripción |
|---|---|---|
name |
string |
Nombre o descripción del producto. |
sku |
string |
Código o referencia utilizado para identificar el producto. |
price |
string |
Precio unitario del producto. |
tax |
string o null |
Referencia al impuesto asociado al producto, por ejemplo, /api/taxes/1. Puede ser null si no se asigna un impuesto y la API lo permite. |
Campos de client
| Campo | Tipo | Descripción |
|---|---|---|
idClient |
string |
Número de identificación del cliente. |
typeId |
string |
Código del tipo de documento de identificación. Consulta la tabla de tipos de documentos de identificación. |
naturaleza |
integer |
Naturaleza del cliente: 1 para contribuyente y 2 para no contribuyente. |
codigoPais |
string |
Código del país del cliente. En el ejemplo se utiliza PRY. |
tipoOperacion |
integer |
Código del tipo de operación: 1 para B2B, 2 para B2C, 3 para B2G y 4 para B2F. |
email |
string |
Dirección de correo electrónico del cliente. |
name |
string |
Nombre del cliente. |
lastname |
string |
Apellido del cliente. |
phone |
string |
Número de teléfono del cliente, incluido el prefijo internacional cuando corresponda. |
razonSocial |
string |
Razón social del cliente, cuando corresponda. |
Campos de paymentCredit
| Campo | Tipo | Descripción |
|---|---|---|
condicionOperacion |
integer |
Código que identifica la condición de la operación de crédito según los valores admitidos por la API. |
plazo |
string |
Número de unidades de tiempo concedidas para realizar el pago. En el ejemplo, 5. |
periodPlazo |
string |
Unidad de tiempo del plazo de pago. En el ejemplo, day, equivalente a días. |
Envío de la factura al SIFEN
El campo send permite indicar si deseas enviar la factura al Sistema Integrado de Facturación Electrónica Nacional (SIFEN).
| Valor | Comportamiento |
|---|---|
true |
Solicita el envío de la factura al SIFEN para su autorización. |
false |
No solicita el envío al SIFEN durante esta operación. |
La solicitud de envío no garantiza la autorización de la factura. El resultado depende de las validaciones y de la respuesta del SIFEN.
Consideraciones importantes
- Utiliza el identificador correcto de la factura que deseas editar.
- Incluye un token Bearer válido en el encabezado
Authorization. - Envía el cuerpo de la solicitud en formato JSON válido.
- Verifica que los códigos de identificación, naturaleza y tipo de operación sean válidos.
- Comprueba que los productos y los impuestos enviados correspondan a los datos que deseas registrar.
- Si utilizas
send: true, la API solicitará el envío de la factura al SIFEN, sujeto a las validaciones correspondientes.