/issuer/documentsEmitir factura, boleta, nota o retención
La clave decide el ambiente y el RUC: asu_test_ emite con el RUC de prueba en SUNAT beta (numeración propia, sin consumir el plan; requiere su validación beta); asu_live_ emite con el RUC de producción en SUNAT producción y requiere que esté habilitado (PRODUCTION_NOT_ENABLED si no). Un RUC del otro modo responde ISSUER_FORBIDDEN.
Send request
Use the documented inputs to call this endpoint directly.
Parameters
Values are applied to the request and the example on the right.
Clave única por operación (máximo 255 caracteres). Repetirla con el mismo cuerpo devuelve el mismo resultado durante 7 días.
Request body
application/jsonrequiredServicio de transporte de carga sujeto a detracción (operación 1004).
Values: "PEN" · "USD"
Values: "01" · "03" · "04" · "07" · "08" · "20" · "40"
Tasa del IGV para las líneas gravadas (10): 18 general o 10.5 para restaurantes y hoteles MYPE.
Values: 18 · 10.5
Values: "cash" · "credit"
Liquidación de compra (04): domicilio del vendedor y lugar de la operación.
Responses
Aceptado; SUNAT puede seguir procesando.
{
"createdAt": "string",
"currency": "string",
"customer": {
"documentNumber": "string",
"documentType": "string",
"name": "string"
},
"environment": "string",
"fullNumber": "string",
"id": "",
"issueDate": "string",
"issuerRuc": "string",
"links": {
"cdr": "string",
"pdf": "string",
"self": "string",
"xml": "string",
"zip": "string"
},
"number": "string",
"series": "string",
"status": "string",
"sunat": {
"attempts": 1.5,
"description": "string",
"errorCode": "string",
"errorMessage": "string",
"responseCode": "string",
"ticket": "string"
},
"test": true,
"total": "string",
"type": "string",
"updatedAt": "string"
}Serie y número, por ejemplo F001-123.
Identificador del documento en API SUNAT (UUID).
true si se emitió con una clave asu_test_ (sandbox en SUNAT beta).
Tipo SUNAT: 01, 03, 07, 08, 09, 20 o 40.
VALIDATION_ERROR: El cuerpo, los parámetros o una regla del comprobante no son válidos. fields indica el campo.
IDEMPOTENCY_REQUIRED: Falta el header Idempotency-Key.
{
"error": {
"code": "string",
"fields": {},
"message": "string",
"requestId": "",
"retryable": true
}
}UNAUTHENTICATED: Falta la clave API o no es válida.
{
"error": {
"code": "string",
"fields": {},
"message": "string",
"requestId": "",
"retryable": true
}
}TRIAL_EXPIRED: La prueba gratuita venció.
TRIAL_EXHAUSTED: La prueba gratuita consumió sus operaciones.
PLAN_REQUIRED: El workspace no tiene una suscripción activa.
PLAN_LIMIT_REACHED: Se consumieron las operaciones del plan en el mes.
{
"error": {
"code": "string",
"fields": {},
"message": "string",
"requestId": "",
"retryable": true
}
}WORKSPACE_SUSPENDED: El workspace está suspendido.
ISSUER_FORBIDDEN: El RUC no pertenece al workspace de la clave.
PRODUCTION_NOT_ENABLED: Una clave asu_live_ emite siempre en SUNAT producción y el RUC todavía no está habilitado. Usa una clave asu_test_ para probar en beta o completa la validación de producción.
{
"error": {
"code": "string",
"fields": {},
"message": "string",
"requestId": "",
"retryable": true
}
}ISSUER_NOT_CONFIGURED: El RUC no tiene credenciales SUNAT listas: guarda el certificado y completa la validación beta (clave asu_test_) o la de producción (clave asu_live_).
SERIES_BUSY: La serie está reservada por otra emisión; reintenta.
DOCUMENT_NUMBER_CONFLICT: La serie y número ya fueron emitidos.
IDEMPOTENCY_CONFLICT: La Idempotency-Key ya se usó con otro cuerpo.
REQUEST_IN_PROGRESS: Otra petición con la misma Idempotency-Key sigue en proceso.
{
"error": {
"code": "string",
"fields": {},
"message": "string",
"requestId": "",
"retryable": true
}
}CUSTOMER_NOT_FOUND: No se encontraron datos para el RUC o DNI del cliente; envía customer.name.
EXPORT_DATA_INCOMPLETE: Faltan datos obligatorios de exportación (operación 0200).
NOTE_ISSUER_MISMATCH: La nota y el documento afectado son de RUC distintos.
INVALID_SERIES: La serie no existe o no corresponde al tipo de documento.
SERIES_INACTIVE: La serie está inactiva.
NUMBER_REQUIRED: La serie es manual y requiere number.
{
"error": {
"code": "string",
"fields": {},
"message": "string",
"requestId": "",
"retryable": true
}
}RATE_LIMITED: Se superó el límite de peticiones. Respeta el header Retry-After.
{
"error": {
"code": "string",
"fields": {},
"message": "string",
"requestId": "",
"retryable": true
}
}INTERNAL_ERROR: Error interno. Reintenta y comparte el requestId con soporte.
{
"error": {
"code": "string",
"fields": {},
"message": "string",
"requestId": "",
"retryable": true
}
}Powered by heyo
