Ir al contenido

Descarga el PDF

GET
/v1/documents/{id}/pdf
curl https://api.boletura.com/v1/documents/0192f2c4-7d1e-7a3b-9c4d-5e6f7a8b9c0d/pdf \
--header 'Authorization: Bearer bol_test_TU_CLAVE'

Descarga {ruc}-{tipo}-{serie}-{número}.pdf, o {ruc}-{tipo}-{serie}-{número}-ticket.pdf en formato ticket, disponible en todo documento emitido. {tipo} es el código de SUNAT: 01 en factura, 03 en boleta y 07 en nota de crédito. El de un comprobante test lleva la marca «PRUEBA – SIN VALOR FISCAL».

Requiere el scope documents:read.

id
obligatorio
string format: uuid

UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde 404 not_found.

format
string
Valores admitidos: a4 ticket

Formato del PDF. Otro valor responde 422 pdf_format_invalid.

  • a4: hoja A4, el formato por defecto.
  • ticket: rollo de 80 mm para impresora térmica.

Solicitud correcta.

Tipo de contenidoapplication/pdf

El contenido del archivo.

string format: binary
X-Request-Id
string

El del cliente si tiene de 1 a 128 caracteres [A-Za-z0-9._-]; si no, uno generado. Es el request_id de los errores.

RateLimit-Limit
integer

Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.

RateLimit-Remaining
integer

Solicitudes que quedan en la ventana.

RateLimit-Reset
integer

Segundos hasta la ventana siguiente.

Sin una API key válida. Códigos: unauthorized, invalid_api_key, revoked_api_key, expired_api_key.

Tipo de contenidoapplication/json

Formato único de los errores de la API.

object
error
obligatorio

El error principal.

object
type
obligatorio

Familia del error, como validation_error, conflict o unavailable.

string
code
obligatorio

Código estable, para programar contra él.

string
message
obligatorio

Mensaje en español, apto para mostrar a un operador. Puede cambiar: no se programa contra él.

string
param

Ruta del campo en el JSON, con índices entre corchetes, como items[2].unit_price. Solo cuando el error apunta a un campo.

null | string
request_id
obligatorio

Identificador de la solicitud, el mismo de X-Request-Id. Inclúyelo al escribir a soporte.

string
document_id

Documento con el que choca la solicitud. Solo en external_id_conflict y document_already_replaced.

null | string format: uuid
errors

Todos los problemas. Solo aparece cuando hay varios.

Array<object> | null

Uno de los problemas de la solicitud.

object
code
obligatorio

Código estable, para programar contra él.

string
message
obligatorio

Mensaje en español, apto para mostrar a un operador.

string
param

Ruta del campo en el JSON, si el error apunta a uno.

null | string

Ejemplos

Ejemploinvalid_api_key

invalid_api_key

{
"error": {
"type": "unauthorized",
"code": "invalid_api_key",
"message": "La API key no es válida.",
"request_id": "req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a"
}
}
X-Request-Id
string

El del cliente si tiene de 1 a 128 caracteres [A-Za-z0-9._-]; si no, uno generado. Es el request_id de los errores.

RateLimit-Limit
integer

Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.

RateLimit-Remaining
integer

Solicitudes que quedan en la ventana.

RateLimit-Reset
integer

Segundos hasta la ventana siguiente.

La clave no puede operar. Códigos: forbidden (no tiene el scope), tenant_suspended, plan_without_api (el plan de la cuenta no incluye la API), account_not_activated (emisión en live de una cuenta que Boletura todavía no activó).

Tipo de contenidoapplication/json

Formato único de los errores de la API.

object
error
obligatorio

El error principal.

object
type
obligatorio

Familia del error, como validation_error, conflict o unavailable.

string
code
obligatorio

Código estable, para programar contra él.

string
message
obligatorio

Mensaje en español, apto para mostrar a un operador. Puede cambiar: no se programa contra él.

string
param

Ruta del campo en el JSON, con índices entre corchetes, como items[2].unit_price. Solo cuando el error apunta a un campo.

null | string
request_id
obligatorio

Identificador de la solicitud, el mismo de X-Request-Id. Inclúyelo al escribir a soporte.

string
document_id

Documento con el que choca la solicitud. Solo en external_id_conflict y document_already_replaced.

null | string format: uuid
errors

Todos los problemas. Solo aparece cuando hay varios.

Array<object> | null

Uno de los problemas de la solicitud.

object
code
obligatorio

Código estable, para programar contra él.

string
message
obligatorio

Mensaje en español, apto para mostrar a un operador.

string
param

Ruta del campo en el JSON, si el error apunta a uno.

null | string

Ejemplos

Ejemploforbidden

forbidden

{
"error": {
"type": "forbidden",
"code": "forbidden",
"message": "La API key no tiene el scope documents:read que exige este endpoint.",
"request_id": "req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a"
}
}
X-Request-Id
string

El del cliente si tiene de 1 a 128 caracteres [A-Za-z0-9._-]; si no, uno generado. Es el request_id de los errores.

RateLimit-Limit
integer

Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.

RateLimit-Remaining
integer

Solicitudes que quedan en la ventana.

RateLimit-Reset
integer

Segundos hasta la ventana siguiente.

not_found: no existe en el tenant y ambiente de la clave.

Tipo de contenidoapplication/json

Formato único de los errores de la API.

object
error
obligatorio

El error principal.

object
type
obligatorio

Familia del error, como validation_error, conflict o unavailable.

string
code
obligatorio

Código estable, para programar contra él.

string
message
obligatorio

Mensaje en español, apto para mostrar a un operador. Puede cambiar: no se programa contra él.

string
param

Ruta del campo en el JSON, con índices entre corchetes, como items[2].unit_price. Solo cuando el error apunta a un campo.

null | string
request_id
obligatorio

Identificador de la solicitud, el mismo de X-Request-Id. Inclúyelo al escribir a soporte.

string
document_id

Documento con el que choca la solicitud. Solo en external_id_conflict y document_already_replaced.

null | string format: uuid
errors

Todos los problemas. Solo aparece cuando hay varios.

Array<object> | null

Uno de los problemas de la solicitud.

object
code
obligatorio

Código estable, para programar contra él.

string
message
obligatorio

Mensaje en español, apto para mostrar a un operador.

string
param

Ruta del campo en el JSON, si el error apunta a uno.

null | string

Ejemplos

Ejemplonot_found

not_found

{
"error": {
"type": "not_found",
"code": "not_found",
"message": "El documento no existe.",
"request_id": "req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a"
}
}
X-Request-Id
string

El del cliente si tiene de 1 a 128 caracteres [A-Za-z0-9._-]; si no, uno generado. Es el request_id de los errores.

RateLimit-Limit
integer

Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.

RateLimit-Remaining
integer

Solicitudes que quedan en la ventana.

RateLimit-Reset
integer

Segundos hasta la ventana siguiente.

pdf_format_invalid: format no es a4 ni ticket.

Tipo de contenidoapplication/json

Formato único de los errores de la API.

object
error
obligatorio

El error principal.

object
type
obligatorio

Familia del error, como validation_error, conflict o unavailable.

string
code
obligatorio

Código estable, para programar contra él.

string
message
obligatorio

Mensaje en español, apto para mostrar a un operador. Puede cambiar: no se programa contra él.

string
param

Ruta del campo en el JSON, con índices entre corchetes, como items[2].unit_price. Solo cuando el error apunta a un campo.

null | string
request_id
obligatorio

Identificador de la solicitud, el mismo de X-Request-Id. Inclúyelo al escribir a soporte.

string
document_id

Documento con el que choca la solicitud. Solo en external_id_conflict y document_already_replaced.

null | string format: uuid
errors

Todos los problemas. Solo aparece cuando hay varios.

Array<object> | null

Uno de los problemas de la solicitud.

object
code
obligatorio

Código estable, para programar contra él.

string
message
obligatorio

Mensaje en español, apto para mostrar a un operador.

string
param

Ruta del campo en el JSON, si el error apunta a uno.

null | string

Ejemplos

Ejemplopdf_format_invalid

pdf_format_invalid

{
"error": {
"type": "validation_error",
"code": "pdf_format_invalid",
"message": "El formato del PDF debe ser a4 o ticket.",
"param": "format",
"request_id": "req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a"
}
}
X-Request-Id
string

El del cliente si tiene de 1 a 128 caracteres [A-Za-z0-9._-]; si no, uno generado. Es el request_id de los errores.

RateLimit-Limit
integer

Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.

RateLimit-Remaining
integer

Solicitudes que quedan en la ventana.

RateLimit-Reset
integer

Segundos hasta la ventana siguiente.

rate_limited: se superó el límite de 600 solicitudes por minuto por clave o 1200 por IP. Se reintenta después de Retry-After.

Tipo de contenidoapplication/json

Formato único de los errores de la API.

object
error
obligatorio

El error principal.

object
type
obligatorio

Familia del error, como validation_error, conflict o unavailable.

string
code
obligatorio

Código estable, para programar contra él.

string
message
obligatorio

Mensaje en español, apto para mostrar a un operador. Puede cambiar: no se programa contra él.

string
param

Ruta del campo en el JSON, con índices entre corchetes, como items[2].unit_price. Solo cuando el error apunta a un campo.

null | string
request_id
obligatorio

Identificador de la solicitud, el mismo de X-Request-Id. Inclúyelo al escribir a soporte.

string
document_id

Documento con el que choca la solicitud. Solo en external_id_conflict y document_already_replaced.

null | string format: uuid
errors

Todos los problemas. Solo aparece cuando hay varios.

Array<object> | null

Uno de los problemas de la solicitud.

object
code
obligatorio

Código estable, para programar contra él.

string
message
obligatorio

Mensaje en español, apto para mostrar a un operador.

string
param

Ruta del campo en el JSON, si el error apunta a uno.

null | string

Ejemplos

Ejemplorate_limited

rate_limited

{
"error": {
"type": "rate_limited",
"code": "rate_limited",
"message": "Demasiadas solicitudes. Reintente después de los segundos que indica Retry-After.",
"request_id": "req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a"
}
}
X-Request-Id
string

El del cliente si tiene de 1 a 128 caracteres [A-Za-z0-9._-]; si no, uno generado. Es el request_id de los errores.

RateLimit-Limit
integer

Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.

RateLimit-Remaining
integer

Solicitudes que quedan en la ventana.

RateLimit-Reset
integer

Segundos hasta la ventana siguiente.

Retry-After
integer

Segundos que conviene esperar antes de reintentar.

Falla transitoria, como database_unavailable o storage_unavailable. Se reintenta con una espera creciente.

Tipo de contenidoapplication/json

Formato único de los errores de la API.

object
error
obligatorio

El error principal.

object
type
obligatorio

Familia del error, como validation_error, conflict o unavailable.

string
code
obligatorio

Código estable, para programar contra él.

string
message
obligatorio

Mensaje en español, apto para mostrar a un operador. Puede cambiar: no se programa contra él.

string
param

Ruta del campo en el JSON, con índices entre corchetes, como items[2].unit_price. Solo cuando el error apunta a un campo.

null | string
request_id
obligatorio

Identificador de la solicitud, el mismo de X-Request-Id. Inclúyelo al escribir a soporte.

string
document_id

Documento con el que choca la solicitud. Solo en external_id_conflict y document_already_replaced.

null | string format: uuid
errors

Todos los problemas. Solo aparece cuando hay varios.

Array<object> | null

Uno de los problemas de la solicitud.

object
code
obligatorio

Código estable, para programar contra él.

string
message
obligatorio

Mensaje en español, apto para mostrar a un operador.

string
param

Ruta del campo en el JSON, si el error apunta a uno.

null | string

Ejemplos

Ejemplodatabase_unavailable

database_unavailable

{
"error": {
"type": "unavailable",
"code": "database_unavailable",
"message": "La base de datos no está disponible. Reintente en unos segundos.",
"request_id": "req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a"
}
}
X-Request-Id
string

El del cliente si tiene de 1 a 128 caracteres [A-Za-z0-9._-]; si no, uno generado. Es el request_id de los errores.

RateLimit-Limit
integer

Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.

RateLimit-Remaining
integer

Solicitudes que quedan en la ventana.

RateLimit-Reset
integer

Segundos hasta la ventana siguiente.