Generar una Factura Electrónica

Este endpoint permite generar un factura electrónica

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
string
required
length between 26 and 26

Id de la empresa

Body Params

Objeto JSON con la información del factura electrónica

Datos generales solicitados para emitir una Factura Electrónica

information
object
required

Información general de la factura electrónica.

XML tag: <Invoice>

issuer
object

Información del emisor electrónico.

XML tag: <cac:AccountingSupplierParty>

customer
object
required

Información del cliente o receptor

XML tag: <cac:AccountingCustomerParty>

payment
object

Define la condición general de pago del comprobante: si el cliente paga al momento de la emisión (contado) o en una fecha posterior (crédito). Cuando se omite, la API asume contado por defecto.

XML tag: <cac:PaymentTerms> <cbc:ID> #FormaPago.

itemDetails
array of objects
required
length ≥ 1

Datos del detalle o Ítem del documento.

XML tag: <cac:InvoiceLine>

itemDetails*
string
required
length between 1 and 500

Descripción detallada del servicio prestado, bien vendido o cedido en uso, indicando las características.

XML tag: <cac:Item> <cbc:Description>

number
required
1e-10 to 1000000000000

Cantidad de unidades por ítem.

XML tag: <cbc:InvoicedQuantity>

string
required
length between 1 and 3

Unidad de medida

Código que identifica la unidad de medida del bien o servicio facturado, según el catálogo de unidades de medida.

Se utiliza para indicar cómo se cuantifica el ítem (por ejemplo: unidad, kilogramo, hora, servicio, etc.).

XML tag: <cbc:InvoicedQuantity @unitCode>

codes
object

Objeto que agrupa los distintos códigos de identificación del bien o servicio, incluyendo el código interno del producto, el código de producto SUNAT y el código GTIN, según corresponda y estén disponibles.

number
required
0 to 1000000000000

Valor de venta unitario del bien o servicio por ítem, expresado sin incluir impuestos, descuentos u otros cargos adicionales.

XML tag: <cac:Price> <cbc:PriceAmount>

number
required
0 to 1000000000000

Precio de venta unitario final del ítem

Corresponde al monto unitario que paga el cliente por el bien o servicio. Este valor debe incluir los descuentos y cargos aplicados a nivel de ítem, así como los impuestos correspondientes (por ejemplo, IGV).

Es el precio final por unidad que se refleja en la transacción.

XML tag: <cac:PricingReference> <cac:AlternativeConditionPrice> <cbc:PriceAmount>

number
0 to 1000000000000

Valor referencial unitario del bien o servicio por ítem utilizado en operaciones gratuitas o no onerosas, consignado únicamente para efectos tributarios.

XML tag: <cac:AlternativeConditionPrice> <cbc:PriceAmount>

adjustment
object

Importe que representa un cargo o un descuento aplicado a nivel de ítem, que incrementa o disminuye el valor del bien o servicio, según corresponda, conforme a la normativa de SUNAT.

XML tag: <cac:AllowanceCharge>

number
required
0 to 1000000000000

Valor de venta total del ítem, obtenido como la suma del valor unitario multiplicado por la cantidad, considerando los cargos y descuentos aplicables, y expresado sin incluir impuestos.

XML tag: <cbc:LineExtensionAmount>

taxes
object
required

Objeto que agrupa los impuestos aplicables al ítem, incluyendo el Impuesto General a las Ventas (IGV) y otros tributos que puedan corresponder, indicando para cada uno su tipo de afectación, porcentaje y monto calculado, conforme a la normativa de SUNAT.

XML tag: <cac:TaxTotal>

string
length between 1 and 8

Número de placa del vehículo automotor

Sustenta gastos vinculados a un vehículo de la empresa (combustible, mantenimiento, seguro, reparación), conforme al inciso w) del Art. 37 de la Ley del Impuesto a la Renta. No depende de profileId — aplica en cualquier factura.

XML tag: <cac:InvoiceLine> <cac:Item> <cac:AdditionalItemProperty> <cbc:Value> con NameCode = "7000" (Catálogo N° 55)

prepaidPayments
array of objects
length ≥ 1

Array que se envía únicamente en la factura final. Cada elemento referencia un anticipo previamente pagado.

La API construye automáticamente el bloque <cac:PrepaidPayment>, su <cac:AdditionalDocumentReference>, y el o los <cac:AllowanceCharge> correspondientes — el integrador no debe enviar adjustment para anticipos.

totals.prepaidAmount debe ser igual a la suma de todos los paidAmount con tolerancia de ±0.01, y es requerido cuando se envía este array (y viceversa).

XML tags: <cac:PrepaidPayment> + <cac:AdditionalDocumentReference>

prepaidPayments
number
required
0.01 to 1000000000000

Monto del anticipo pagado previamente con IGV, expresado en la moneda del comprobante — el monto bruto que el cliente pagó. Corresponde al PayableAmount completo de la factura de anticipo.

La suma de todos los paidAmount del array debe ser igual a totals.prepaidAmount con tolerancia de ±0.01.

XML tag: <cac:PrepaidPayment> <cbc:PaidAmount>

string
enum

Tipo de afectación tributaria del anticipo.

Determina qué código de descuento genera el motor en el <cac:AllowanceCharge> y cómo calcula su monto a partir de paidAmount. Este elemento acepta una de las siguientes opciones:

  • "04" (valor por defecto) → Anticipo gravado. La API descuenta el IGV del paidAmount para obtener la base: amount = paidAmount / (1 + igvPercentage).
  • "05" → Anticipo exonerado. El paidAmount no lleva IGV, así que la API lo usa completo como base.
  • "06" → Anticipo inafecto. Igual que el exonerado, la API usa el paidAmount completo como base.

    XML tag: <cbc:AllowanceChargeReasonCode> (generado automáticamente por el motor, no requiere que el integrador envíe adjustment)
Allowed:
string
\d{4}-\d{2}-\d{2}

Fecha en que se realizó el pago del anticipo. SUNAT no aplica validaciones activas sobre este campo — es informativo.

XML tag: <cac:PrepaidPayment> <cbc:PaidDate>

string
enum
required

Tipo del comprobante de anticipo emitido previamente. Este elemento acepta una de las siguientes opciones:

  • 02 (factura de anticipo)
  • 03 (boleta de venta de anticipo)

    XML tag: <cac:AdditionalDocumentReference> <cbc:DocumentTypeCode>
Allowed:
string
required
^([FBE][A-Z0-9]{3}|[0-9]{1,4})$

Serie del comprobante de anticipo referenciado.

  • Para documentType = 02 (factura): [F][A-Z0-9]{3}, E001 o ^[0-9]{1,4}$
  • Para documentType = 03 (boleta): [B][A-Z0-9]{3}, EB01 o ^[0-9]{1,4}$.

    XML tag: <cac:AdditionalDocumentReference> <cbc:ID> (compuesto con number)
integer
required
1 to 99999999

Número correlativo del comprobante de anticipo referenciado. Entero sin ceros a la izquierda.

XML tag: <cac:AdditionalDocumentReference> <cbc:ID> (compuesto con series)

string
^[0-9]{11}$

RUC del emisor del comprobante de anticipo referenciado. Si no se envía, la API usa automáticamente el RUC del emisor de la factura final, dado que en la mayoría de operaciones el mismo emisor emitió ambos comprobantes.

Solo debe enviarse cuando el RUC del emisor del anticipo es diferente al de la factura final — caso típico de copago con compañías de seguros, donde la factura emitida a la aseguradora deduce un anticipo cuyo emisor es distinto. El tipo de documento es siempre "6" (RUC)

XML tag: <cac:AdditionalDocumentReference> <cac:IssuerParty> <cac:PartyIdentification> <cbc:ID> (con @schemeID = "6")

adjustment
object

Objeto que contiene la información de los cargos y/o descuentos aplicados de manera global al comprobante electrónico.

XML tag: <cac:AllowanceCharge>

totals
object
required

Objeto que agrupa los importes totales del comprobante electrónico, incluyendo los valores de venta, impuestos, cargos, descuentos y el importe total a pagar, calculados conforme a la normativa de SUNAT.

perception
object

Datos de la percepción del comprobante, los montos enviados en este objeto deben estar en Soles (PEN).
Obligatorio en operaciones sujetas a percepciones (2001).

XML tags:

  • <cac:AllowanceCharge>
  • <cac:PaymentTerms>
detraction
object

Datos de la detracción del comprobante, los montos enviados en este objeto deben estar en soles (PEN).

Obligatorio en operaciones sujetas a detracciones (information.profileId): 1001, 1002, 1003, 1004.

XML tags:

  • <cac:PaymentTerms>
  • <cac:PaymentMeans>
retention
object

Retenciones aplicadas al comprobante. Aplica únicamente a Factura de venta.

XML tag: <cac:AllowanceCharge>

relatedDocuments
object

Agrupa los documentos externos relacionados con la operación comercial del comprobante electrónico. Permite referenciar guías de remisión, órdenes de compra o servicio, y otros documentos vinculados a la transacción. Cada tipo de documento se envía en su propio array y puede incluir múltiples referencias simultáneamente.

Responses

Language
Credentials
Bearer
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json