Skip to main content

Endpoint

GET https://api.ipsofactura.com/cfdi/{uuid}/pdf

Headers

HeaderValor
AuthorizationBearer {tu_api_key}

Path params

ParamTipoDescripción
uuidstring (UUID)UUID del CFDI.

Query params

ParamTipoDefaultDescripción
templatestringdefaultPlantilla visual: default, compact, branded.
logo_urlstringURL pública de un logo PNG/SVG para incluir en el PDF. Solo aplica con template=branded.

Ejemplos de uso

import requests

uuid = "6128396f-c09b-4ec6-8699-43da5a244971"

# Plantilla estándar
response = requests.get(
    f"https://api.ipsofactura.com/cfdi/{uuid}/pdf",
    headers={"Authorization": "Bearer {tu_api_key}"},
)

with open("factura.pdf", "wb") as f:
    f.write(response.content)

Con plantilla branded

response = requests.get(
    f"https://api.ipsofactura.com/cfdi/{uuid}/pdf",
    headers={"Authorization": "Bearer {tu_api_key}"},
    params={
        "template": "branded",
        "logo_url": "https://miempresa.com/logo.png",
    },
)

with open("factura_branded.pdf", "wb") as f:
    f.write(response.content)

Response 200

Retorna el PDF como application/pdf.

Plantillas disponibles

templateDescripción
defaultDiseño estándar con colores neutros.
compactUna página optimizada para facturas simples.
brandedIncluye logo del emisor vía logo_url.

Errores

Logo inaccesible (422)

{
  "error": "logo_url_inaccesible",
  "message": "No se pudo descargar el logo desde la URL provista.",
  "status": 422,
  "detail": {
    "logo_url": "https://miempresa.com/logo.png",
    "http_status": 404
  }
}

Tabla de errores

StatusCódigoDescripción
404cfdi_no_encontradoEl UUID no existe en tu cuenta.
422logo_url_inaccesibleNo se pudo descargar el logo desde la URL provista.