Ir al contenido
Log in

Descargar facturas

Cuando trabajas con facturas, es importante diferenciar entre:

  • Archivo legal de la factura: el archivo oficial final que fue entregado (facturas emitidas) o recibido (facturas recibidas).
  • Archivo original de la factura: el primer archivo recibido por B2Brouter para esa factura (para facturas emitidas, esto es normalmente un archivo fuente importado; para facturas recibidas, es la factura recibida del emisor).
  • Exportar una factura a un formato específico: B2Brouter genera un documento a partir de los datos de la factura (puede diferir del archivo legal/original).
  • Adjuntos: archivos adicionales vinculados a la factura (PDFs, etc.). Los adjuntos no son la factura en sí.

Dependiendo de lo que necesites, deberás:

  • Llamar a un endpoint de descarga directa (por ejemplo, /invoices/{INVOICE_ID}/as/original), o
  • Usar una ruta de descarga devuelta en el JSON de la factura (por ejemplo, download_legal_url o attachments[].link).
  • Una clave API con acceso al proyecto/cuenta de la factura.
  • El invoice.id interno de B2Brouter (puedes obtenerlo de los endpoints de listado).

Paso 1: Obtener el payload de la factura (opcional pero recomendado)

Sección titulada «Paso 1: Obtener el payload de la factura (opcional pero recomendado)»

Llama a Get invoice para recuperar el JSON de la factura y localizar los campos relevantes:

Ventana de terminal
curl --request GET \
--url https://api-staging.b2brouter.net/invoices/{INVOICE_ID}.json \
--header 'X-B2B-API-Key: {YOUR_API_KEY}' \
--header 'X-B2B-API-Version: {YOUR_API_VERSION}' \
--header 'accept: application/json'
Sección titulada «Facturas emitidas: archivo legal a través de download_legal_url (IssuedInvoice / IssuedSelfInvoice)»

Después de que se envíe una factura emitida, la respuesta puede incluir download_legal_url, que apunta al archivo legal entregado al receptor (por ejemplo, el XML exacto enviado a una red/plataforma, o el PDF legal).

download_legal_url es una ruta relativa (no una URL completa), por ejemplo:

{
"invoice": {
"download_legal_url": "/attachments/download/{ATTACHMENT_ID}/{FILENAME}"
}
}

Facturas recibidas: archivo original/legal a través de /invoices/{id}/as/original

Sección titulada «Facturas recibidas: archivo original/legal a través de /invoices/{id}/as/original»

Para las facturas recibidas, el archivo original también es el archivo legal. Descárgalo directamente con:

Ventana de terminal
GET /invoices/{INVOICE_ID}/as/original
Sección titulada «Adjuntos (tanto emitidas como recibidas): attachments[].link»

El JSON de la factura puede incluir un array attachments. Cada entrada contiene un link que puedes usar para descargar el adjunto almacenado.

attachments[].link es una ruta relativa (no una URL completa), por ejemplo:

{
"invoice": {
"attachments": [
{
"link": "/attachments/download/{ATTACHMENT_ID}/{FILENAME}",
"content_type": "application/pdf"
}
]
}
}

Para una explicación más detallada de los adjuntos y los PDFs legales, consulta: Gestionar adjuntos de facturas.

Los campos de URL devueltos por la API (download_legal_url, attachments[].link) son rutas relativas. Antepónles la URL base de tu entorno.

Sección titulada «Descarga usando download_legal_url (facturas emitidas, legal)»
Ventana de terminal
curl --request GET \
--url https://api-staging.b2brouter.net{download_legal_url} \
--header 'X-B2B-API-Key: {YOUR_API_KEY}' \
--header 'X-B2B-API-Version: {YOUR_API_VERSION}'
Sección titulada «Descarga usando attachments[].link (adjuntos)»
Ventana de terminal
curl --request GET \
--url https://api-staging.b2brouter.net{attachment_link} \
--header 'X-B2B-API-Key: {YOUR_API_KEY}' \
--header 'X-B2B-API-Version: {YOUR_API_VERSION}'

Descarga usando /invoices/{id}/as/original (original)

Sección titulada «Descarga usando /invoices/{id}/as/original (original)»
Ventana de terminal
curl --request GET \
--url https://api-staging.b2brouter.net/invoices/{INVOICE_ID}/as/original \
--header 'X-B2B-API-Key: {YOUR_API_KEY}' \
--header 'X-B2B-API-Version: {YOUR_API_VERSION}'
  • Para facturas recibidas, /invoices/{INVOICE_ID}/as/original devuelve el archivo recibido del emisor (original = legal).
  • Para facturas emitidas, /invoices/{INVOICE_ID}/as/original solo funciona cuando la factura tiene un archivo original (por ejemplo, XML importado). Si la factura fue creada directamente a partir de un payload JSON, es posible que no haya ningún archivo original para descargar.