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 null en el campo tax, siempre que la configuración de la API lo permita.
  • Para facturas a crédito, incluye el objeto paymentCredit con los datos del plazo de pago.
  • Utiliza send: true cuando desees solicitar el envío de la factura al SIFEN para su autorización.