Crear una factura rápidamente
Descripción
Este endpoint permite crear una factura de forma rápida y sencilla. Solo necesitas enviar los datos del cliente y los productos incluidos en la factura.
Si el cliente o alguno de los productos no existe, se creará automáticamente durante el proceso, según los datos proporcionados.
Este endpoint es ideal si deseas utilizar nuestra API únicamente para crear facturas y enviarlas al SIFEN para su autorización, sin necesidad de registrar previamente los clientes y productos.
El siguiente ejemplo muestra cómo crear una factura con pago a crédito. Si deseas utilizar otra modalidad de pago, consulta los ejemplos correspondientes.
Solicitud
Envía una petición HTTP POST al endpoint /api/invoices, utilizando el encabezado Content-Type: application/json y Authorization: Bearer <el token>.
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": "3",
"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
}
En la respuesta encontrarás el campo:
"sriDocument": {
"@id": "/api/sri_documents/69",
"@type": "SriDocument",
"id": 69,
"claveAccesso": "01037822110001001000053312025061317538548776",
"secuencial": "0000533",
"estado": "EN_PROGRESO",
"serie1": "001",
"serie2": "001"
}
-
claveAccesso: corresponde al CDC. -
serie1: Es el establecimiento. -
serie2: Es el punto de emisión. -
estado: puede tener los siguientes valores:-
APROBADO: la factura fue aprobada. -
RECHAZADO: la factura fue rechazada. -
EN_PROGRESO: la factura está en proceso (en modo asíncrono).Si el estado es EN_PROGRESO, es necesario verificar nuevamente el estado después de un minuto o más.
-
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 o artículos 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, según la configuración de la API. |
transactionType |
integer |
Código que identifica el tipo de transacción. El valor 1 corresponde al tipo configurado para este ejemplo. |
client |
object |
Datos del cliente al que se emite la factura. |
paymentCredit |
object |
Información específica de las condiciones de pago a crédito. |
send |
boolean |
Indica si se debe enviar la factura al SIFEN para su autorización. true: enviar. false: no enviar. |
Campos de client
Este objeto contiene los datos de identificación y contacto del cliente.
| Campo | Tipo | Descripción |
|---|---|---|
idClient |
string |
Número de identificación del cliente. |
typeId |
string |
Código del tipo de documento de identificación del cliente. |
naturaleza |
integer |
Código que identifica la naturaleza del cliente, de acuerdo con los catálogos de la API. |
codigoPais |
string |
Código del país del cliente. En el ejemplo se utiliza PRY. |
tipoOperacion |
integer |
Código del tipo de operación aplicable al cliente, según la configuración de la API. |
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 invoiceDetails
Cada elemento de este arreglo representa una línea de la factura.
| Campo | Tipo | Descripción |
|---|---|---|
product |
object |
Datos del producto que se incluirá en la factura. |
amount |
string |
Cantidad de unidades del producto. |
discount |
string |
Valor del descuento aplicado a la línea de la factura. En el ejemplo es 0. |
discountType |
string o null |
Tipo de descuento aplicado. Se utiliza 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 único o referencia del producto utilizado para identificarlo. |
price |
string |
Precio unitario del producto. |
tax |
string o null |
Referencia al impuesto asociado al producto. Por ejemplo, /api/taxes/1. Utiliza null cuando no se asigna un impuesto. |
Importante: si el producto no existe, la API puede crearlo automáticamente con los datos enviados. Verifica que el sku sea correcto para evitar crear productos duplicados.
Campos de paymentCredit
Este objeto define el plazo de pago de la factura a crédito.
| 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. En este ejemplo se utiliza 1. |
plazo |
string |
Número de unidades de tiempo concedidas para el pago. En el ejemplo, 5. |
periodPlazo |
string |
Unidad de tiempo utilizada para definir el plazo. En el ejemplo, day, equivalente a días. |
Envío de la factura al SIFEN
El campo send controla si la factura debe enviarse al Sistema Integrado de Facturación Electrónica Nacional (SIFEN) para su autorización.
| Valor | Comportamiento |
|---|---|
true |
Solicita el envío de la factura al SIFEN para su autorización. |
false |
Crea la factura sin solicitar su envío al SIFEN en esta operación. |
Consideraciones importantes
- Envía el cuerpo de la solicitud en formato JSON válido.
- Comprueba que los códigos de identificación, país, naturaleza y tipo de operación sean válidos para la configuración de tu cuenta.
- Si el producto no tiene un impuesto asignado, puedes enviar
nullen el campotax, siempre que la configuración de la API lo permita. - Para facturas a crédito, incluye el objeto
paymentCreditcon los datos del plazo de pago. - Utiliza
send: truecuando desees solicitar el envío de la factura al SIFEN para su autorización.