# Estructura para generar facturas

<mark style="background-color:orange;">**POST**</mark>`https://api.factpro.la/api/v3/documentos`

**Headers**

<table data-full-width="true"><thead><tr><th width="215">Name</th><th>Value</th></tr></thead><tbody><tr><td>Content-Type</td><td><code>application/json</code></td></tr><tr><td>Authorization</td><td><code>Bearer &#x3C;token></code></td></tr></tbody></table>

**Body**

<table data-full-width="true"><thead><tr><th width="370">ATRIBUTO</th><th width="417">VALOR</th><th width="135">REQUISITO</th><th width="128">LONGUITUD</th><th></th></tr></thead><tbody><tr><td><pre><code>serie
</code></pre></td><td>Debe ingresar "F" para FACTURAS y con "B" para BOLETAS DE VENTA. Para su generación debe tener en cuenta que el comprobante debe estar aceptado.</td><td><mark style="background-color:green;">Obligatorio</mark></td><td>4 exacto</td><td></td></tr><tr><td><pre><code>numero
</code></pre></td><td>Número correlativo del documento</td><td><mark style="background-color:green;">Obligatorio</mark></td><td>1 hasta 8</td><td></td></tr><tr><td><pre><code>fecha_de_emision
</code></pre></td><td>Opcional<br>Debe ser la fecha actual. Ejemplo: 2024-05-14</td><td><mark style="background-color:purple;">Opcional</mark></td><td>10 exacto</td><td></td></tr><tr><td><p></p><pre><code><a data-footnote-ref href="#user-content-fn-1">moneda</a>
</code></pre></td><td><p>Opcional , por defecto siempre sera en MONEDA "PEN"<br>PEN = SOLES</p><p>USD= DÓLARES</p></td><td><mark style="background-color:purple;">Opcional</mark></td><td>3 exacto</td><td></td></tr><tr><td><pre><code>tipo_operacion
</code></pre></td><td><p>En todos los casos se utiliza por defecto: 1<br></p><p>1= Venta interna</p><p>2= Exportación</p><p>3= Operación Sujeta a Detracción<br>4= Operación Sujeta a Detracción- Servicios de Transporte Carga<br>5= Ventas no domiciliados que no califican como exportación</p></td><td><mark style="background-color:green;">Obligatorio</mark></td><td>4 exacto</td><td></td></tr><tr><td><pre><code>enviar_automaticamente_al_cliente
</code></pre></td><td>Dirección de email<br><strong>false</strong> = No se enviara<br><strong>true</strong> = Se enviará automáticamente<br></td><td><mark style="background-color:purple;">Opcional</mark></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td><strong>DATOS DEL CLIENTE</strong></td><td></td><td></td><td></td><td></td></tr><tr><td><pre><code>cliente_tipo_documento
</code></pre></td><td>1=Otros<br>2=DNI<br>3=CE<br>4=RUC<br>5=Pasaporte</td><td><mark style="background-color:green;">Obligatorio</mark></td><td>1 exacto</td><td></td></tr><tr><td><pre><code>cliente_numero_documento
</code></pre></td><td>Ejemplo: RUC del CLIENTE, número de DNI, Etc.</td><td><mark style="background-color:green;">Obligatorio</mark></td><td>1 hasta 15</td><td></td></tr><tr><td><pre><code>cliente_denomiacion
</code></pre></td><td>Razón o nombre completo del CLIENTE.</td><td><mark style="background-color:green;">Obligatorio</mark></td><td>1 hasta 100</td><td></td></tr><tr><td><pre><code>codigo_pais
</code></pre></td><td>Colocar el país del CLIENTE, por ejemplo Perú = PE</td><td><mark style="background-color:purple;">Opcional</mark></td><td>2 exacto</td><td></td></tr><tr><td><pre><code>ubigeo
</code></pre></td><td>Debe ingresar número por código de Ubigeo , por ejemplo 150101</td><td><mark style="background-color:purple;">Opcional</mark></td><td>2 exacto</td><td></td></tr><tr><td><pre><code><strong>cliente_direccion
</strong></code></pre></td><td>Dirección completa (OPCIONAL en caso de ser una BOLETA DE VENTA o NOTA ASOCIADA).</td><td><mark style="background-color:orange;">Condicional</mark></td><td>1 hasta 100</td><td></td></tr><tr><td><pre><code>cliente_email
</code></pre></td><td>Correo referencial</td><td><mark style="background-color:purple;">Opcional</mark></td><td></td><td></td></tr><tr><td><pre><code>cliente_telefono
</code></pre></td><td>Teléfono referencial</td><td><mark style="background-color:purple;">Opcional</mark></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td><strong>ITEMS</strong></td><td></td><td></td><td></td><td></td></tr><tr><td><pre><code>unidad
</code></pre></td><td><p>Enviar las unidades de medida, por ejemplo para Unidad es = NIU<br></p><p>NIU = PRODUCTO</p><p>ZZ = SERVICIO</p></td><td><mark style="background-color:green;">Obligatorio</mark></td><td>2 hasta 5</td><td></td></tr><tr><td><pre><code>codigo
</code></pre></td><td>Opcional, código interno del producto por ejemplo P0121</td><td><mark style="background-color:purple;">Opcional</mark></td><td>1 hasta 250</td><td></td></tr><tr><td><pre><code>descripcion
</code></pre></td><td>Nombre del producto</td><td><mark style="background-color:green;">Obligatorio</mark></td><td>1 hasta 250</td><td></td></tr><tr><td><pre><code>cantidad
</code></pre></td><td>Ejemplo: 10.00</td><td><mark style="background-color:green;">Obligatorio</mark></td><td>1 hasta 12 enteros, hasta con 10 decimales</td><td></td></tr><tr><td><pre><code>precio
</code></pre></td><td>Ejemplo: 100</td><td><mark style="background-color:green;">Obligatorio</mark></td><td>1 hasta 12 enteros, hasta con 10 decimales</td><td></td></tr><tr><td><pre><code>incluye_tax
</code></pre></td><td>Si el precio que utilizas en tu app no incluye impuesto debes de colocar: false<br><br>Si el precio que envias ya incluye el impuesto, puedes enviarnos como : true o no es necesario enviar esta variable</td><td><mark style="background-color:purple;">Opcional</mark></td><td>4 hasta 5</td><td></td></tr><tr><td><pre><code>tipo_tax
</code></pre></td><td>1=Gravado - Operación Onerosa<br>20=Exonerado - Operación Onerosa<br>21=Exonerado – Transferencia Gratuita<br>30=Inafecto - Operación Onerosa<br>40=Exportación de bienes o servicios</td><td><mark style="background-color:green;">Obligatorio</mark></td><td>2 exacto</td><td></td></tr><tr><td><p></p><pre class="language-postman_json"><code class="lang-postman_json">descuento
</code></pre></td><td>Ejemplo: 5</td><td><mark style="background-color:purple;">Opcional</mark></td><td>1 hasta 12 enteros, hasta con 10 decimales</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td><strong>CONDICIÓN DE PAGO</strong></td><td></td><td></td><td></td><td></td></tr><tr><td><pre><code>tipo_de_condicion
</code></pre></td><td>0= Contado y 1 = Crédito</td><td><mark style="background-color:orange;">Condicional</mark></td><td>1 exacto</td><td></td></tr><tr><td><pre><code>fecha_de_pago
</code></pre></td><td><mark style="background-color:red;">Solo aplica si es a crédito</mark><br>tendrán un formato: 2024-01-03</td><td><mark style="background-color:orange;">Condicional</mark></td><td>10 exacto</td><td></td></tr><tr><td><pre><code>monto
</code></pre></td><td><mark style="background-color:red;">Solo aplica si es a crédito</mark><br>debe ir el monto de la cuota, ejemplo 50.00</td><td><mark style="background-color:orange;">Condicional</mark></td><td>1 hasta 12 enteros con 2 decimales</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td><strong>OTROS CAMPOS</strong></td><td></td><td></td><td></td><td></td></tr><tr><td><pre><code>formato_pdf
</code></pre></td><td>Puedes elegir entre  a4 o ticket para mostrar automáticamente el formato del PDF</td><td><mark style="background-color:green;">Obligatorio</mark></td><td></td><td></td></tr><tr><td><pre><code>numero_orden
</code></pre></td><td>Texto de 0 hasta 1000 caracteres.</td><td><mark style="background-color:purple;">Opcional</mark></td><td></td><td></td></tr><tr><td><pre><code>codigo
</code></pre></td><td>Texto de 0 hasta 1000 caracteres.</td><td><mark style="background-color:purple;">Opcional</mark></td><td></td><td></td></tr><tr><td><pre><code>observaciones
</code></pre></td><td>Texto de 0 hasta 1000 caracteres.</td><td><mark style="background-color:purple;">Opcional</mark></td><td></td><td></td></tr></tbody></table>

**Body**

```json
{
  "serie": "F100",
  "numero": "#",  
  "tipo_operacion": "1",
  "cliente": {
    "cliente_tipo_documento": "4",
    "cliente_numero_documento": "20605577241",
    "cliente_denominacion": "CORPORACION VEL PERU S.A.C.",
    "cliente_direccion": "Av.",
    "cliente_email": "laverioa@gmail.com",
    "cliente_telefono": ""
  },
  "items": [
    {
      "unidad": "NIU",
      "codigo": "",
      "descripcion": "PC 3434",
      "cantidad": 1,
      "precio": 100,
      "tipo_tax": "1",
      "descuento": 0.00
    }
  ],
  "condicion_de_pago": [
        {
        "tipo_de_condicion": "0",
        "forma_de_pago":"0",
        "monto": 0
        }
    ],
    "observaciones": "",
    "formato_pdf": "a4"
}
```

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
    "success": true,
    "data": {
        "number": "F001-5",
        "filename": "20415963255-01-F001-5",
        "external_id": "103c8710-6c6e-4b7b-8d7b-c59f642c7a71",
        "number_to_letter": "Ciento dieciocho  con 00/100 ",
        "hash": "gLOlpznxBvvhT/BUUugMYDhQo84=",
        "qr": "iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAIAAACzY+a1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEgklEQVR4nO2d3XYbMQgG4568/yund45bqwQBWneOZy7t1U/yHZAWIXz7+vr6EDK/Xj0B6aKEeJQQjxLiUUI8SohHCfEoIR4lxKOEeJQQjxLi+Uw+d7vd+oM9htTvHd4/fBzi+="
    },
    "links": {
        "xml": "https://factpro.pe/downloads/document/xml/103c8710-6c6e-4b7b-8d7b-c59f642c7a71",
        "pdf": "https://factpro.pe/downloads/document/pdf/103c8710-6c6e-4b7b-8d7b-c59f642c7a71",
        "cdr": "https://factpro.pe/downloads/document/cdr/103c8710-6c6e-4b7b-8d7b-c59f642c7a71"
    },
    "response": {
        "code": "0",
        "description": "La Factura numero F001-5, ha sido aceptada",
        "notes": []
    }
}
```

{% endtab %}
{% endtabs %}

[^1]:


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.factpro.la/api-facturacion-v3/estructura-para-generar-facturas.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
