Ejemplos por país
➕ Crear documentos
Colección de Postman
Para ayudarle con su integración, descargue nuestra colección de Postman aquí: https://github.com/koyweforest/api-billing-postman
Para facilitar las pruebas, puede usar la siguiente información al emitir documentos
| account_id | RUC | legal_name | activity | postalcode |
|---|---|---|---|---|
| 16268 | 20610383727 |
Factura (Factura electrónica)
Para crear una nueva factura peruana, debe usar el endpoint /documents con los parámetros adecuados.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"96",
"document_sequence_code":"F001",
"received_issued_flag":0,
"issue_date":"2025-02-03",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Factura con costo cero (Factura electrónica con costo cero)
Para crear una factura peruana con costo cero (por ejemplo, muestras promocionales), debe usar el endpoint /documents con los parámetros adecuados. Los montos de la línea y los totales deben ser cero, e incluya el campo tax_base_amount en los impuestos para indicar la base imponible de referencia.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"96",
"document_sequence_code":"FZ03",
"received_issued_flag":0,
"issue_date":"2026-07-01",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"observations":"Muestra promocional",
"additional":{
"pe_header":{
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":0,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":0,
"modifier_percentage":0,
"total_amount_line":0,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":0,
"tax_base_amount":1000
}
]
}
],
"totals":{
"net_amount":0,
"taxes_amount":0,
"total_amount":0
}
}
Factura con PDF térmico 80mm (Factura electrónica con pdf térmico 80mm)
Para crear una nueva factura peruana, debe usar el endpoint /documents con los parámetros adecuados.
Soporte para térmico 80mm en document_type_id 96, 97 y 100; consulte la tabla de códigos.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"options": {
"template_id": 5000
},
"header":{
"account_id":16268,
"document_type_id":"96",
"received_issued_flag":0,
"issue_date":"2025-02-03",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Factura de exportación (Factura electrónica para casos de exportación)
Para crear una nueva factura de exportación peruana, debe usar el endpoint /documents con los parámetros adecuados. Tenga en cuenta que, a diferencia de otros países, el tipo de documento es el mismo que las facturas regulares, ya que es solo un caso especial de la factura electrónica estándar.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":179,
"document_type_id":"96",
"document_sequence_code":"F001",
"received_issued_flag":0,
"issue_date":"2025-04-21",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"851855616",
"receiver_tax_id_type":"US-EIN",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0200"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba ROW",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":0,
"modifier_percentage":0,
"total_amount_line":1000,
"sku":"3245",
"taxes":[
{
"tax_type_id":"425",
"tax_percentage":0,
"tax_amount":0
}
]
}
],
"totals":{
"net_amount":1000,
"taxes_amount":0,
"total_amount":1000
}
}
Factura con referencia a otros documentos (reference_number)
Para crear una nueva factura peruana con documentos referenciados, debe usar el endpoint /documents con los parámetros adecuados y agregar el campo reference_number que indica el número del documento original al que se refiere la factura.
Use reference_number o reference_document_id para identificar el documento referido (no ambos a la vez). Si el documento ya existe en Facto, puede usar reference_document_id en lugar de reference_number. Los campos reference_date y description son obligatorios.
Sobre reference_code:
"6": referencia a una guía de remisión (document_type_id"100")."5": referencia a un documento no tributario (orden de compra, contrato, etc.), indicandoreference_type(801-815).
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"96",
"document_sequence_code":"FZ01",
"received_issued_flag":0,
"issue_date":"2026-07-28",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"references":[
{
"reference_type":"802",
"reference_number":"A00000046",
"reference_code":"5",
"description":"Num Pedido",
"reference_date":"2026-07-28"
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Factura con referencia a otros documentos (reference_document_id)
Para crear una nueva factura peruana con documentos referenciados, debe usar el endpoint /documents con los parámetros adecuados y agregar el campo reference_document_id que indica el ID del documento original al que se refiere la factura.
Use reference_number o reference_document_id para identificar el documento referido (no ambos a la vez). Si el documento ya existe en Facto, puede usar reference_document_id en lugar de reference_number. Los campos reference_date y description son obligatorios.
Sobre reference_code:
"6": referencia a una guía de remisión (document_type_id"100")."5": referencia a un documento no tributario (orden de compra, contrato, etc.), indicandoreference_type(801-815).
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"96",
"document_sequence_code":"FZ01",
"received_issued_flag":0,
"issue_date":"2026-07-28",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"references":[
{
"document_type_id":"100",
"reference_document_id":"1587",
"reference_code":"6",
"description":"Guia",
"reference_date":"2026-07-28"
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Factura con referencia a guía de remisión (reference_number)
Para referenciar una guía de remisión en una factura peruana, use document_type_id "100" y reference_code "6" en el bloque references. Identifique la guía con reference_number (por ejemplo "T002-00000099") o con reference_document_id (no ambos a la vez). La guía debe haber sido emitida en Facto por la misma empresa. Los campos reference_date y description son obligatorios.
Recuerde: reference_code "6" es para guía de remisión y "5" para documentos no tributarios.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"96",
"document_sequence_code":"FZ01",
"received_issued_flag":0,
"issue_date":"2026-07-28",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"references":[
{
"document_type_id":"100",
"reference_code":"6",
"reference_number":"T002-00000099",
"description":"Guía de remisión",
"reference_date":"2026-07-28"
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Factura con referencia a guía de remisión (reference_document_id)
Para referenciar una guía de remisión en una factura peruana cuando la guía ya existe en Facto, use document_type_id "100", reference_code "6" y reference_document_id en el bloque references (sin reference_number). Los campos reference_date y description son obligatorios.
Recuerde: reference_code "6" es para guía de remisión y "5" para documentos no tributarios.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"96",
"document_sequence_code":"FZ01",
"received_issued_flag":0,
"issue_date":"2026-07-28",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"references":[
{
"document_type_id":"100",
"reference_code":"6",
"reference_document_id":"1587",
"description":"Guía de remisión",
"reference_date":"2026-07-28"
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Factura con detracción general (Factura electrónica sujeta a detracción 1001)
Para crear una factura peruana sujeta a detracción general, debe usar el endpoint /documents con pe_header.operation_type "1001" y el bloque pe_detraction. En este ejemplo se usa el código "022" al 9% sobre el total de la factura (amount = 9% de total_amount). Consulte los códigos en la tabla de códigos.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"96",
"document_sequence_code":"FC01",
"received_issued_flag":0,
"issue_date":"2026-08-31",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"1001"
},
"pe_detraction":{
"code":"022",
"percent":9.00,
"amount":106.20,
"nation_bank_account":"00-000-000000",
"payment_means_code":"001"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Factura con detracción de transporte de pasajeros (Factura electrónica sujeta a detracción 1003)
Para crear una factura peruana sujeta a detracción por transporte de pasajeros, debe usar el endpoint /documents con pe_header.operation_type "1003" y el bloque pe_detraction. En este ejemplo se usa el código "028" al 10% sobre el total de la factura (amount = 10% de total_amount).
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"96",
"document_sequence_code":"FC01",
"received_issued_flag":0,
"issue_date":"2026-08-31",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"1003"
},
"pe_detraction":{
"code":"028",
"percent":10.00,
"amount":118.00,
"nation_bank_account":"00-000-000000",
"payment_means_code":"001"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Servicio de transporte de pasajeros",
"unit_measure":"ZZ",
"unit_price":1000,
"long_description":"Venta sujeta a detraccion 1003",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"028-PASAJ",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Factura con detracción de transporte de carga (Factura electrónica sujeta a detracción 1004)
Para crear una factura peruana sujeta a detracción por transporte de carga, debe usar el endpoint /documents con pe_header.operation_type "1004", el bloque pe_detraction y el bloque pe_cargo_transport. En este ejemplo se usa el código "027" al 12% sobre el total de la factura (amount = 12% de total_amount).
IMPORTANTE: En operaciones 1004 es obligatorio enviar pe_cargo_transport (ubigeo y dirección de origen y destino, detalle del viaje y montos de referencia). Si falta, E-Fact rechaza el comprobante con el error 3116.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"96",
"document_sequence_code":"FC01",
"received_issued_flag":0,
"issue_date":"2026-08-31",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"1004"
},
"pe_detraction":{
"code":"027",
"percent":12.00,
"amount":141.60,
"nation_bank_account":"00-000-000000",
"payment_means_code":"001"
},
"pe_cargo_transport":{
"origin_ubigeo":"150102",
"origin_address":"PUNTO ORIGEN DIRECCION DETALLADA",
"destination_ubigeo":"150119",
"destination_address":"PUNTO DESTINO DIRECCION DETALLADA",
"trip_detail":"DETALLE DEL VIAJE",
"service_reference_amount":1000.00,
"effective_load_reference_amount":1000.00,
"payload_reference_amount":1000.00
}
}
},
"details":[
{
"quantity":1,
"line_description":"Servicio de transporte de carga",
"unit_measure":"ZZ",
"unit_price":1000,
"long_description":"Venta sujeta a detraccion 1004",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"027-CARGA",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Boleta de venta (Boleta electrónica)
Para crear una nueva boleta peruana, debe usar el endpoint /documents con los parámetros adecuados. Puede emitir boletas a receptores identificados con DNI usando el campo "receiver_tax_id_type" con el valor "PE-DNI".
IMPORTANTE: Al emitir boletas, DEBE usar la fecha de hoy como issue_date. De lo contrario, recibirá el "Error 1079: Solo puede enviar el comprobante en un resumen diario", que indica que no está permitido emitir boletas individuales para fechas anteriores.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"97",
"document_sequence_code":"B001",
"received_issued_flag":0,
"issue_date":"2025-02-03",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"80",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"80",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Boleta con costo cero (Boleta electrónica con costo cero)
Para crear una boleta peruana con costo cero (por ejemplo, muestras promocionales), debe usar el endpoint /documents con los parámetros adecuados. Los montos de la línea y los totales deben ser cero, e incluya el campo tax_base_amount en los impuestos para indicar la base imponible de referencia.
IMPORTANTE: Al emitir boletas, DEBE usar la fecha de hoy como issue_date. De lo contrario, recibirá el "Error 1079: Solo puede enviar el comprobante en un resumen diario", que indica que no está permitido emitir boletas individuales para fechas anteriores.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"97",
"document_sequence_code":"BZ03",
"received_issued_flag":0,
"issue_date":"2026-07-01",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"observations":"Muestra promocional",
"additional":{
"pe_header":{
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":0,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":0,
"modifier_percentage":0,
"total_amount_line":0,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":0,
"tax_base_amount":1000
}
]
}
],
"totals":{
"net_amount":0,
"taxes_amount":0,
"total_amount":0
}
}
Boleta menor a 700 soles (Boleta electrónica)
Si el monto total de la boleta es inferior a 700 soles, no es necesario incluir la información del cliente.
Para crear una nueva boleta peruana, debe usar el endpoint /documents con los parámetros adecuados. Puede emitir boletas a receptores identificados con DNI usando el campo "receiver_tax_id_type" con el valor "PE-DNI".
IMPORTANTE: Al emitir boletas, DEBE usar la fecha de hoy como issue_date. De lo contrario, recibirá el "Error 1079: Solo puede enviar el comprobante en un resumen diario", que indica que no está permitido emitir boletas individuales para fechas anteriores.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"97",
"document_sequence_code":"B001",
"received_issued_flag":0,
"issue_date":"2025-07-21",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"80",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba ROW",
"unit_measure":"NIU",
"unit_price":500,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":90,
"modifier_percentage":0,
"total_amount_line":590,
"sku":"3245",
"taxes":[
{
"tax_type_id":"412",
"tax_percentage":18,
"tax_amount":90
}
]
}
],
"totals":{
"net_amount":500,
"taxes_amount":90,
"total_amount":590
}
}
Boleta emitida a cliente extranjero (Boleta electrónica nominativa con receptor extranjero)
Para crear una nueva boleta peruana, debe usar el endpoint /documents con los parámetros adecuados. Puede emitir boletas tanto a receptores locales como extranjeros configurando el campo receiver_tax_id_type según corresponda. Por ejemplo, use "PE-DNI" para cédulas de identidad peruanas, o "US-EIN" para receptores identificados con un EIN de EE.UU.
IMPORTANTE: Al emitir boletas, DEBE usar la fecha de hoy como issue_date. De lo contrario, recibirá el "Error 1079: Solo puede enviar el comprobante en un resumen diario", que indica que no está permitido emitir boletas individuales para fechas anteriores.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header": {
"account_id": 16268,
"document_type_id": "97",
"document_sequence_code":"B001",
"received_issued_flag": 1,
"issue_date": "2025-07-23",
"issuer_tax_id_code": "20610383727",
"issuer_tax_id_type": "PE-RUC",
"issuer_legal_name": "KOYWE PERU SAC",
"issuer_address": "AV. REPUBLICA DE PANAMA NRO. 3535 INT. 403",
"issuer_district": "SAN ISIDRO",
"issuer_department": "LIMA",
"issuer_city": "LIMA",
"issuer_phone": "+51949944464",
"issuer_activity": "OTROS TIPOS DE INTERMEDIACIoN MONETARIA",
"issuer_postalcode": "15036",
"issuer_country_id": "83",
"receiver_tax_id_type": "US-EIN",
"receiver_tax_id_code": "10752012",
"receiver_legal_name": "Hapi Corp",
"receiver_email": "[email protected]",
"receiver_address": "2261 Market Street #4257",
"receiver_district": "San Francisco ",
"receiver_city": "San Francisco ",
"receiver_activity": "Brokers de acciones",
"receiver_country_id": "83",
"receiver_department": "",
"payment_conditions": "0",
"currency_id": 7,
"additional": {
"pe_header": {
"signature_id": "ASDFG",
"operation_type": "0101"
}
}
},
"details": [
{
"quantity": 1,
"unit_price": 400,
"unit_measure": "NIU",
"line_description": "Servicio de obtencion de bienes digitales por su cuenta y orden. Orden ID c4250e3d-95db-4da3-a01f-14e6b3b0b239. Monto Total: 18.00 PEN",
"long_description": "Servicio de obtencion de bienes digitales por su cuenta y orden. Orden ID c4250e3d-95db-4da3-a01f-14e6b3b0b239. Monto Total: 18.00 PEN",
"taxes": [
{
"tax_type_id": "413",
"tax_percentage": 18,
"tax_amount": 72
}
]
}
],
"totals": {
"net_amount": 400,
"taxes_amount": 72,
"total_amount": 472
}
}
Boleta de venta con referencia a otros documentos (reference_number)
Para crear una nueva boleta peruana con documentos referenciados, debe usar el endpoint /documents con los parámetros adecuados y agregar el campo reference_number que indica el número del documento original al que se refiere la boleta.
Use reference_number o reference_document_id para identificar el documento referido (no ambos a la vez). Si el documento ya existe en Facto, puede usar reference_document_id en lugar de reference_number. Los campos reference_date y description son obligatorios.
Sobre reference_code:
"6": referencia a una guía de remisión (document_type_id"100")."5": referencia a un documento no tributario (orden de compra, contrato, etc.), indicandoreference_type(801-815).
IMPORTANTE: Al emitir boletas, DEBE usar la fecha de hoy como issue_date. De lo contrario, recibirá el "Error 1079: Solo puede enviar el comprobante en un resumen diario", que indica que no está permitido emitir boletas individuales para fechas anteriores.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"97",
"document_sequence_code":"BZ01",
"received_issued_flag":0,
"issue_date":"2026-07-28",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"80",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"80",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"references":[
{
"reference_type":"802",
"reference_number":"A00000046",
"reference_code":"5",
"description":"Num Pedido",
"reference_date":"2026-07-28"
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Boleta de venta con referencia a otros documentos (reference_document_id)
Para crear una nueva boleta peruana con documentos referenciados, debe usar el endpoint /documents con los parámetros adecuados y agregar el campo reference_document_id que indica el ID del documento original al que se refiere la boleta.
Use reference_number o reference_document_id para identificar el documento referido (no ambos a la vez). Si el documento ya existe en Facto, puede usar reference_document_id en lugar de reference_number. Los campos reference_date y description son obligatorios.
Sobre reference_code:
"6": referencia a una guía de remisión (document_type_id"100")."5": referencia a un documento no tributario (orden de compra, contrato, etc.), indicandoreference_type(801-815).
IMPORTANTE: Al emitir boletas, DEBE usar la fecha de hoy como issue_date. De lo contrario, recibirá el "Error 1079: Solo puede enviar el comprobante en un resumen diario", que indica que no está permitido emitir boletas individuales para fechas anteriores.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"97",
"document_sequence_code":"BZ01",
"received_issued_flag":0,
"issue_date":"2026-07-28",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"80",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"80",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"references":[
{
"document_type_id":"100",
"reference_document_id":"190",
"reference_code":"6",
"description":"Guia",
"reference_date":"2026-07-28"
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Boleta de venta con referencia a guía de remisión (reference_number)
Para referenciar una guía de remisión en una boleta peruana, use document_type_id "100" y reference_code "6" en el bloque references. Identifique la guía con reference_number (por ejemplo "T002-00000099") o con reference_document_id (no ambos a la vez). La guía debe haber sido emitida en Facto por la misma empresa. Los campos reference_date y description son obligatorios.
Recuerde: reference_code "6" es para guía de remisión y "5" para documentos no tributarios.
IMPORTANTE: Al emitir boletas, DEBE usar la fecha de hoy como issue_date. De lo contrario, recibirá el "Error 1079: Solo puede enviar el comprobante en un resumen diario", que indica que no está permitido emitir boletas individuales para fechas anteriores.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"97",
"document_sequence_code":"BZ01",
"received_issued_flag":0,
"issue_date":"2026-07-28",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"80",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"80",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"references":[
{
"document_type_id":"100",
"reference_code":"6",
"reference_number":"T002-00000099",
"description":"Guía de remisión",
"reference_date":"2026-07-28"
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Boleta de venta con referencia a guía de remisión (reference_document_id)
Para referenciar una guía de remisión en una boleta peruana cuando la guía ya existe en Facto, use document_type_id "100", reference_code "6" y reference_document_id en el bloque references (sin reference_number). Los campos reference_date y description son obligatorios.
Recuerde: reference_code "6" es para guía de remisión y "5" para documentos no tributarios.
IMPORTANTE: Al emitir boletas, DEBE usar la fecha de hoy como issue_date. De lo contrario, recibirá el "Error 1079: Solo puede enviar el comprobante en un resumen diario", que indica que no está permitido emitir boletas individuales para fechas anteriores.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"97",
"document_sequence_code":"BZ01",
"received_issued_flag":0,
"issue_date":"2026-07-28",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"80",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"80",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"references":[
{
"document_type_id":"100",
"reference_code":"6",
"reference_document_id":"190",
"description":"Guía de remisión",
"reference_date":"2026-07-28"
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Nota de crédito para Factura con reference_number (Nota de crédito electrónica para Factura)
Para crear una nueva nota de crédito peruana, debe usar el endpoint /documents con los parámetros adecuados y agregar el campo reference_number que indica el número del documento original (como una factura) al que se refiere la nota de crédito.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header": {
"account_id": 16268,
"document_type_id": "98",
"document_sequence_code":"FC01",
"received_issued_flag": 0,
"issue_date": "2025-01-27",
"issuer_tax_id_code": "20610383727",
"issuer_tax_id_type": "PE-RUC",
"issuer_legal_name": "<string>",
"issuer_address": "<string>",
"issuer_district": "<string>",
"issuer_city": "<string>",
"issuer_department":"<string>",
"issuer_country_id": "80",
"issuer_phone": "<string>",
"issuer_activity": "<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code": "20473731828",
"receiver_tax_id_type": "PE-RUC",
"receiver_legal_name": "ESCUELA KEMPER URGATES",
"receiver_address": "<string>",
"receiver_district": "<string>",
"receiver_city": "<string>",
"receiver_department":"<string>",
"receiver_country_id": "80",
"receiver_phone": "<string>",
"receiver_activity": "<string>",
"receiver_postalcode":"12343456",
"payment_conditions": "0",
"currency_id": 7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details": [
{
"quantity": 1,
"line_description": "Prueba Koywe",
"unit_measure": "NIU",
"unit_price": 1000,
"long_description": "Test descripcion",
"modifier_amount": 0,
"total_taxes": 180,
"modifier_percentage": 0,
"total_amount_line": 1180,
"sku": "3245",
"taxes": [
{
"tax_type_id": "413",
"tax_percentage": 18,
"tax_amount": 180
}
]
}
],
"references": [
{
"document_type_id": "96",
"reference_number": "F001-00000087",
"reference_code": "01",
"description": "Anulacion solicitada por el emisor",
"reference_date": "2025-01-27"
}
],
"totals": {
"net_amount": 1000,
"taxes_amount": 180,
"total_amount": 1180
}
}
Nota de crédito para Factura con reference_document_id (Nota de crédito electrónica para Factura)
Para crear una nueva nota de crédito peruana, debe usar el endpoint /documents con los parámetros adecuados y agregar el campo reference_document_id que indica el ID del documento original (como una factura) al que se refiere la nota de crédito.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header": {
"account_id": 16268,
"document_type_id": "98",
"received_issued_flag": 0,
"document_sequence_code":"FC01",
"issue_date": "2025-11-11",
"issuer_tax_id_code": "20610383727",
"issuer_tax_id_type": "PE-RUC",
"issuer_legal_name": "<string>",
"issuer_address": "<string>",
"issuer_district": "<string>",
"issuer_city": "<string>",
"issuer_department":"<string>",
"issuer_country_id": "80",
"issuer_phone": "<string>",
"issuer_activity": "<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code": "20473731828",
"receiver_tax_id_type": "PE-RUC",
"receiver_legal_name": "ESCUELA KEMPER URGATES",
"receiver_address": "<string>",
"receiver_district": "<string>",
"receiver_city": "<string>",
"receiver_department":"<string>",
"receiver_country_id": "80",
"receiver_phone": "<string>",
"receiver_activity": "<string>",
"receiver_postalcode":"12343456",
"payment_conditions": "0",
"currency_id": 7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details": [
{
"quantity": 1,
"line_description": "Prueba Koywe",
"unit_measure": "NIU",
"unit_price": 1000,
"long_description": "Test descripcion",
"modifier_amount": 0,
"total_taxes": 180,
"modifier_percentage": 0,
"total_amount_line": 1180,
"sku": "3245",
"taxes": [
{
"tax_type_id": "413",
"tax_percentage": 18,
"tax_amount": 180
}
]
}
],
"references": [
{
"document_type_id": "96",
"reference_document_id": "1587",
"reference_code": "01",
"description": "Anulacion solicitada por el emisor",
"reference_date": "2025-11-11"
}
],
"totals": {
"net_amount": 1000,
"taxes_amount": 180,
"total_amount": 1180
}
}
Nota de crédito para Boleta con reference_number (Nota de crédito electrónica para Boleta)
Para crear una nueva nota de crédito peruana para una boleta, debe usar el endpoint /documents con los parámetros adecuados y agregar el campo reference_number que indica el número de la boleta original a la que se refiere la nota de crédito.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header": {
"account_id": 16268,
"document_type_id": "155",
"document_sequence_code":"BC01",
"received_issued_flag": 1,
"issue_date": "2025-01-27",
"issuer_tax_id_code": "20610383727",
"issuer_tax_id_type": "PE-RUC",
"issuer_legal_name": "<string>",
"issuer_address": "<string>",
"issuer_district": "<string>",
"issuer_city": "<string>",
"issuer_department":"<string>",
"issuer_country_id": "83",
"issuer_phone": "<string>",
"issuer_activity": "<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code": "20473731828",
"receiver_tax_id_type": "PE-RUC",
"receiver_legal_name": "ESCUELA KEMPER URGATES",
"receiver_address": "<string>",
"receiver_district": "<string>",
"receiver_city": "<string>",
"receiver_department":"<string>",
"receiver_country_id": "83",
"receiver_phone": "<string>",
"receiver_activity": "<string>",
"receiver_postalcode":"12343456",
"payment_conditions": "0",
"currency_id": 7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details": [
{
"quantity": 1,
"line_description": "Prueba Koywe",
"unit_measure": "NIU",
"unit_price": 1000,
"long_description": "Test descripcion",
"modifier_amount": 0,
"total_taxes": 180,
"modifier_percentage": 0,
"total_amount_line": 1180,
"sku": "3245",
"taxes": [
{
"tax_type_id": "413",
"tax_percentage": 18,
"tax_amount": 180
}
]
}
],
"references": [
{
"document_type_id": "97",
"reference_number": "B001-00000087",
"reference_code": "01",
"description": "Anulacion solicitada por el emisor",
"reference_date": "2025-01-27"
}
],
"totals": {
"net_amount": 1000,
"taxes_amount": 180,
"total_amount": 1180
}
}
Nota de crédito para Boleta con reference_document_id (Nota de crédito electrónica para Boleta)
Para crear una nueva nota de crédito peruana para una boleta, debe usar el endpoint /documents con los parámetros adecuados y agregar el campo reference_document_id que indica el ID de la boleta original a la que se refiere la nota de crédito.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header": {
"account_id": 16268,
"document_type_id": "155",
"document_sequence_code":"BC01",
"received_issued_flag": 1,
"issue_date": "2025-01-27",
"issuer_tax_id_code": "20610383727",
"issuer_tax_id_type": "PE-RUC",
"issuer_legal_name": "<string>",
"issuer_address": "<string>",
"issuer_district": "<string>",
"issuer_city": "<string>",
"issuer_department":"<string>",
"issuer_country_id": "83",
"issuer_phone": "<string>",
"issuer_activity": "<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code": "20473731828",
"receiver_tax_id_type": "PE-RUC",
"receiver_legal_name": "ESCUELA KEMPER URGATES",
"receiver_address": "<string>",
"receiver_district": "<string>",
"receiver_city": "<string>",
"receiver_department":"<string>",
"receiver_country_id": "83",
"receiver_phone": "<string>",
"receiver_activity": "<string>",
"receiver_postalcode":"12343456",
"payment_conditions": "0",
"currency_id": 7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details": [
{
"quantity": 1,
"line_description": "Prueba Koywe",
"unit_measure": "NIU",
"unit_price": 1000,
"long_description": "Test descripcion",
"modifier_amount": 0,
"total_taxes": 180,
"modifier_percentage": 0,
"total_amount_line": 1180,
"sku": "3245",
"taxes": [
{
"tax_type_id": "413",
"tax_percentage": 18,
"tax_amount": 180
}
]
}
],
"references": [
{
"document_type_id": "97",
"reference_document_id": "190",
"reference_code": "01",
"description": "Anulacion solicitada por el emisor",
"reference_date": "2025-01-27"
}
],
"totals": {
"net_amount": 1000,
"taxes_amount": 180,
"total_amount": 1180
}
}
Nota de débito con reference_number (Nota de débito electrónica)
Para crear una nueva nota de débito peruana, debe usar el endpoint /documents con los parámetros adecuados y agregar el campo reference_number que indica el número del documento original (como una factura o boleta) al que se refiere la nota de débito.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"99",
"document_sequence_code":"FD01",
"received_issued_flag":0,
"issue_date":"2025-01-23",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"80",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"80",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"references": [
{
"document_type_id":"96",
"reference_number":"F001-00000080",
"reference_code":"03",
"description":"Penalidad/otros conceptos",
"reference_date":"2025-01-23"
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Nota de débito con reference_document_id (Nota de débito electrónica)
Para crear una nueva nota de débito peruana, debe usar el endpoint /documents con los parámetros adecuados y agregar el campo reference_document_id que indica el ID del documento original (como una factura o boleta) al que se refiere la nota de débito.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"99",
"document_sequence_code":"FD01",
"received_issued_flag":0,
"issue_date":"2025-01-23",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"80",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"80",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"signature_id":"ASDFG",
"operation_type":"0101"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"references": [
{
"document_type_id":"96",
"reference_document_id": "1587",
"reference_code":"03",
"description":"Penalidad/otros conceptos",
"reference_date":"2025-01-23"
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Guía de remisión remitente (Guía de remisión electrónica remitente)
Para crear una nueva guía de remisión remitente peruana (document_type_id "100", código SUNAT "09"), debe usar el endpoint /documents con los parámetros adecuados y agregar los campos adicionales de envío. La serie suele comenzar con T (por ejemplo T002).
En pe_shipping.delivery se indican los dos extremos del traslado: dispatch es el punto de partida y delivery_address el punto de llegada. Cada uno lleva su ubigeo de 6 dígitos en ubigeo_code (el nombre anterior id se sigue aceptando). En delivery_address debe indicar al destinatario con party_tax_id_code, party_tax_id_type y party_legal_name (obligatorio). El remitente es el emisor, por lo que dispatch no lleva party_*. El receptor del encabezado (receiver_*) es la contraparte del documento en Facto.
Para la guía emitida por el transportista (document_type_id "101"), use el ejemplo siguiente.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"100",
"document_sequence_code":"T002",
"received_issued_flag":0,
"issue_date":"2026-02-17",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20610383727",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_department":"<string>",
"receiver_city":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"operation_type":"0101"
},
"pe_shipping":{
"handling_code":"13",
"special_instructions":6,
"handling_instructions":"DESCRIPCION DEL MOTIVO DE TRASLADO",
"gross_weight_measure":"500",
"gross_weight_measure_id":"KGM",
"shipment_stage":{
"transport_mode_code":"01",
"transit_period":"2026-02-17",
"driver_person":{
"driver_id":"72257341",
"first_name":"NOMBRE CONDUCTOR",
"family_name":"APELLIDOS CONDUCTOR",
"identity_document_reference":"LICENC1234"
},
"carrier_party":{
"party_identification": "20104498044",
"party_legal_entity_name": "EMPRESA TRANSPORTISTA",
"party_legal_entity_id": "NUMREGISTRANS",
"agent_party_id": "NUMAUTRANS"
}
},
"delivery":{
"delivery_address":{
"party_tax_id_code":"20473731828",
"party_tax_id_type":"PE-RUC",
"party_legal_name":"EMPRESA DESTINATARIA SAC",
"ubigeo_code":"150110",
"city_subdivision_name":"URBANIZACION",
"city_name":"PROVINCIA",
"country_subentity":"DEPARTAMENTO",
"district":"DISTRITO",
"address_line":"DIRECCION PUNTO LLEGADA",
"country_id":"83"
},
"dispatch":{
"ubigeo_code":"150112",
"city_subdivision_name":"URBANIZACION",
"city_name":"PROVINCIA",
"country_subentity":"DEPARTAMENTO",
"district":"DISTRITO",
"address_line":"DIRECCION PUNTO PARTIDA",
"country_id":"83"
}
},
"transport_handling_unit":{
"transport_equipment_id":"PLACA1"
}
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"long_description":"Test descripcion",
"sku":"3245"
}
]
}
Guía de remisión transportista (Guía de remisión electrónica transportista)
Para crear una guía de remisión transportista peruana, use document_type_id "101" (código SUNAT "31") en el endpoint /documents. El emisor es la empresa de transporte; el receptor del encabezado (receiver_*) es la contraparte del documento en Facto (por ejemplo, quien contrata el transporte).
La serie debe comenzar con V (por ejemplo V001). En pe_shipping.delivery.dispatch debe indicar al remitente (quién envía los bienes) y en pe_shipping.delivery.delivery_address al destinatario (quién los recibe), cada uno con party_tax_id_code, party_tax_id_type y party_legal_name, junto al ubigeo de 6 dígitos del punto de partida y de llegada en ubigeo_code (el nombre anterior id se sigue aceptando). El campo pe_shipping.despatch_party ya no se acepta. El conductor (driver_person) y la placa (transport_handling_unit.transport_equipment_id) son obligatorios. Los ítems no llevan montos ni impuestos.
Si la guía de remisión remitente (document_type_id "100") también fue emitida en Facto por la misma empresa, puede referenciarla en references con reference_code "6". No se aceptan referencias a documentos de terceros.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"101",
"document_sequence_code":"V001",
"received_issued_flag":0,
"issue_date":"2026-09-14",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_department":"<string>",
"receiver_city":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"operation_type":"0101"
},
"pe_shipping":{
"handling_code":"01",
"handling_instructions":"TRANSPORTE DE MERCADERIA",
"gross_weight_measure":"500",
"gross_weight_measure_id":"KGM",
"shipment_stage":{
"transport_mode_code":"01",
"transit_period":"2026-09-14",
"driver_person":{
"driver_id":"72257341",
"first_name":"NOMBRE CONDUCTOR",
"family_name":"APELLIDOS CONDUCTOR",
"identity_document_reference":"LICENC1234"
},
"carrier_party":{
"party_identification":"20610383727",
"party_legal_entity_name":"EMPRESA TRANSPORTISTA",
"party_legal_entity_id":"NUMREGISTRANS",
"agent_party_id":"NUMAUTRANS"
}
},
"delivery":{
"delivery_address":{
"party_tax_id_code":"20473731828",
"party_tax_id_type":"PE-RUC",
"party_legal_name":"EMPRESA DESTINATARIA SAC",
"ubigeo_code":"150110",
"city_subdivision_name":"URBANIZACION",
"city_name":"PROVINCIA",
"country_subentity":"DEPARTAMENTO",
"district":"DISTRITO",
"address_line":"DIRECCION PUNTO LLEGADA",
"country_id":"83"
},
"dispatch":{
"party_tax_id_code":"20100070970",
"party_tax_id_type":"PE-RUC",
"party_legal_name":"EMPRESA REMITENTE SAC",
"ubigeo_code":"150112",
"city_subdivision_name":"URBANIZACION",
"city_name":"PROVINCIA",
"country_subentity":"DEPARTAMENTO",
"district":"DISTRITO",
"address_line":"DIRECCION PUNTO PARTIDA",
"country_id":"83"
}
},
"transport_handling_unit":{
"transport_equipment_id":"ABC123"
}
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"long_description":"Test descripcion",
"sku":"3245"
}
]
}
Guía de remisión transportista por evento (Guía de remisión electrónica transportista por evento)
Cuando durante el traslado ocurre un evento que impide continuarlo en las condiciones de la guía original (por ejemplo, cambio de vehículo por desperfecto, transbordo, cambio de conductor, o imposibilidad de llegar al destino o de entregar los bienes), el transportista debe emitir una nueva guía de remisión transportista después de ocurrido el evento y antes de reiniciar el traslado.
La guía por evento es el mismo tipo de documento (document_type_id "101") con los datos actualizados del traslado. En este ejemplo, por cambio de vehículo, se informan la nueva placa y el nuevo conductor, y como punto de partida el lugar donde ocurrió el evento. En references debe indicar la guía que se modifica, con reference_code "6" (referencia a guía) y el mismo document_type_id "101", usando reference_document_id con el ID en Facto de la guía original.
-
La serie debe comenzar con
V(por ejemploV001). Las seriesEG(EG03, EG05, etc.) son exclusivas de las guías emitidas desde el portal SUNAT o la app Emprender y no se pueden usar por API. -
La guía referenciada debe haber sido emitida en Facto por la misma empresa; no se aceptan referencias a documentos de terceros. La serie, el número y el emisor de la referencia se toman de ese documento.
-
Para una guía de remisión remitente por evento se procede igual: se emite una nueva guía
"100"(serieT) que referencia a la guía"100"original conreference_code"6". -
Endpoint: https://apifacto.com/v1/documents
-
Método: POST
-
Cabeceras requeridas:
-
Content-Type: application/json
-
Authorization: Bearer \<token>
-
Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"101",
"document_sequence_code":"V001",
"received_issued_flag":0,
"issue_date":"2026-09-30",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"83",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_department":"<string>",
"receiver_city":"<string>",
"receiver_country_id":"83",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"operation_type":"0101"
},
"pe_shipping":{
"handling_code":"01",
"handling_instructions":"CAMBIO DE VEHICULO POR DESPERFECTO MECANICO",
"gross_weight_measure":"500",
"gross_weight_measure_id":"KGM",
"shipment_stage":{
"transport_mode_code":"01",
"transit_period":"2026-09-30",
"driver_person":{
"driver_id":"45871236",
"first_name":"NOMBRE NUEVO CONDUCTOR",
"family_name":"APELLIDOS NUEVO CONDUCTOR",
"identity_document_reference":"Q45871236"
},
"carrier_party":{
"party_identification":"20610383727",
"party_legal_entity_name":"EMPRESA TRANSPORTISTA",
"party_legal_entity_id":"NUMREGISTRANS",
"agent_party_id":"NUMAUTRANS"
}
},
"delivery":{
"delivery_address":{
"party_tax_id_code":"20473731828",
"party_tax_id_type":"PE-RUC",
"party_legal_name":"EMPRESA DESTINATARIA SAC",
"ubigeo_code":"150110",
"city_subdivision_name":"URBANIZACION",
"city_name":"PROVINCIA",
"country_subentity":"DEPARTAMENTO",
"district":"DISTRITO",
"address_line":"DIRECCION PUNTO LLEGADA",
"country_id":"83"
},
"dispatch":{
"party_tax_id_code":"20100070970",
"party_tax_id_type":"PE-RUC",
"party_legal_name":"EMPRESA REMITENTE SAC",
"ubigeo_code":"150112",
"city_subdivision_name":"URBANIZACION",
"city_name":"PROVINCIA",
"country_subentity":"DEPARTAMENTO",
"district":"DISTRITO",
"address_line":"DIRECCION DONDE OCURRIO EL EVENTO",
"country_id":"83"
}
},
"transport_handling_unit":{
"transport_equipment_id":"XYZ789"
}
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"long_description":"Test descripcion",
"sku":"3245"
}
],
"references":[
{
"reference_code":"6",
"document_type_id":"101",
"reference_document_id":"3808",
"description":"Guia de remision transportista modificada por cambio de vehiculo",
"reference_date":"2026-09-30"
}
]
}
Comprobante de retención con reference_number (Comprobante de retención)
Para crear un nuevo comprobante de retención peruano, debe usar el endpoint /documents con los parámetros adecuados y agregar el campo reference_number que indica el número del documento original (como una factura) al que se refiere el comprobante de retención, junto con los campos de retención requeridos.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"109",
"document_sequence_code":"R001",
"received_issued_flag":0,
"issue_date":"2025-01-24",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"80",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"80",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_email":"[email protected]",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"operation_type":"0101"
},
"pe_retention_header":{
"pe_sunat_retention_system_code":"01",
"pe_sunat_retention_percent":"3.00",
"pe_sunat_total_paid":"1144.60"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"references":[
{
"document_type_id":"96",
"reference_number":"F001-00000080",
"reference_code":1,
"description":"Pago",
"reference_date":"2025-01-24",
"additional":{
"pe_retention_details":{
"reference_paid_amount":"1144.60",
"reference_total_invoice_amount": "1180",
"reference_paid_date":"2025-01-24",
"reference_payment_id":"1",
"pe_reference_sunat_retention_amount":"34.34",
"pe_reference_sunat_retention_date":"2025-01-23",
"calculation_rate":"1",
"currency_id":"7"
}
}
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Comprobante de retención con reference_document_id (Comprobante de retención)
Para crear un nuevo comprobante de retención peruano, debe usar el endpoint /documents con los parámetros adecuados y agregar el campo reference_document_id que indica el ID del documento original (como una factura) al que se refiere el comprobante de retención, junto con los campos de retención requeridos.
- Endpoint: https://apifacto.com/v1/documents
- Método: POST
- Cabeceras requeridas:
- Content-Type: application/json
- Authorization: Bearer \<token>
- Accept: */*
{
"header":{
"account_id":16268,
"document_type_id":"109",
"document_sequence_code":"R001",
"received_issued_flag":0,
"issue_date":"2025-01-24",
"issuer_tax_id_code":"20610383727",
"issuer_tax_id_type":"PE-RUC",
"issuer_legal_name":"<string>",
"issuer_address":"<string>",
"issuer_district":"<string>",
"issuer_city":"<string>",
"issuer_department":"<string>",
"issuer_country_id":"80",
"issuer_phone":"<string>",
"issuer_activity":"<string>",
"issuer_postalcode":"12345456",
"receiver_tax_id_code":"20473731828",
"receiver_tax_id_type":"PE-RUC",
"receiver_legal_name":"ESCUELA KEMPER URGATES",
"receiver_address":"<string>",
"receiver_district":"<string>",
"receiver_city":"<string>",
"receiver_department":"<string>",
"receiver_country_id":"80",
"receiver_phone":"<string>",
"receiver_activity":"<string>",
"receiver_email":"[email protected]",
"receiver_postalcode":"12343456",
"payment_conditions":"0",
"currency_id":7,
"additional":{
"pe_header":{
"operation_type":"0101"
},
"pe_retention_header":{
"pe_sunat_retention_system_code":"01",
"pe_sunat_retention_percent":"3.00",
"pe_sunat_total_paid":"1144.60"
}
}
},
"details":[
{
"quantity":1,
"line_description":"Prueba Koywe",
"unit_measure":"NIU",
"unit_price":1000,
"long_description":"Test descripcion",
"modifier_amount":0,
"total_taxes":180,
"modifier_percentage":0,
"total_amount_line":1180,
"sku":"3245",
"taxes":[
{
"tax_type_id":"413",
"tax_percentage":18,
"tax_amount":180
}
]
}
],
"references":[
{
"document_type_id":"96",
"reference_document_id": "511",
"reference_code":1,
"description":"Pago",
"reference_date":"2025-01-24",
"additional":{
"pe_retention_details":{
"reference_paid_amount":"1144.60",
"reference_total_invoice_amount": "1180",
"reference_paid_date":"2025-01-24",
"reference_payment_id":"1",
"pe_reference_sunat_retention_amount":"34.34",
"pe_reference_sunat_retention_date":"2025-01-23",
"calculation_rate":"1",
"currency_id":"7"
}
}
}
],
"totals":{
"net_amount":1000,
"taxes_amount":180,
"total_amount":1180
}
}
Estado de respuesta en el resultado de la API REST
| status | description |
|---|---|
| 0 | El borrador fue creado exitosamente, firmado y enviado al SII correctamente. |
| 1 | Hay errores en los datos de entrada, por lo que el borrador no fue generado ni enviado al SII. Los detalles del error estarán en error_message. |
| 2 | El borrador fue creado exitosamente; sin embargo, hay otros problemas (ej., falta de folios) que impidieron su envío al SII. Los detalles del error estarán en error_message. |
Tras emitir un documento en Perú, la API obtiene el CDR (después del XML) y lo incluye en electronic_document como document_cdr (base64) y document_cdr_filename (por ejemplo, F001-00000001.cdr), junto con document_xml y document_pdf.
{
"document_id": 377,
"header": {
"account_id": 14540,
"document_type_id": 82,
"document_type_taxbureau": "01",
"document_number": 1040447,
"received_issued_flag": 1,
"taxbureau_validation_status": null,
"issue_date": "2025-04-15",
"issuer_tax_id_code": "860517022-2",
"issuer_tax_id_type": "PE-RUC",
"issuer_legal_name": "Demo Colombia",
"issuer_address": "",
"issuer_district": "",
"issuer_city": "",
"issuer_country_id": 253,
"issuer_phone": "442020550",
"issuer_activity": "",
"receiver_tax_id_code": "1097491385-1",
"receiver_tax_id_type": "PE-RUC",
"receiver_legal_name": "ESCUELAa KEMPER URGATE",
"receiver_address": "",
"receiver_district": "",
"receiver_city": "",
"receiver_country_id": 66,
"receiver_phone": "<string>",
"receiver_activity": "<string>",
"document_status": 1,
"payment_conditions": "0",
"currency_id": 28
},
"details": [ {
"quantity": "1.000000",
"line_description": "Prueba Koywe",
"long_description": "Esta es una linea de prueba",
"unit_measure": "70",
"unit_price": "3660.000000",
"vat_status": "0"
}],
"references": null,
"global_modifiers": null,
"totals": {
"net_amount": 3660,
"taxes_amount": 695.4,
"total_amount": "4355.40"
},
"electronic_document": {
"document_xml": "PD94bWwgdmVyc2lvbj0iMS4wIiB...",
"document_cdr": "PD94bWwgdmVyc2lvbj0iMS4wIiB...",
"document_cdr_filename": "F001-00000001.cdr",
"document_pdf": "JVBERi0xLjMKMyAwIG9iago8PC9..."
},
"payment_link": null,
"result": {
"status": 0,
"error_message": ""
},
"_links": {"self": {"href": "https://apifacto.com/v1/documents"}}
}
API Reference POST /documents
Documentación detallada del endpoint