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_urloattachments[].link).
Requisitos previos
Sección titulada «Requisitos previos»- Una clave API con acceso al proyecto/cuenta de la factura.
- El
invoice.idinterno 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:
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'Facturas emitidas: archivo legal a través de download_legal_url (IssuedInvoice / IssuedSelfInvoice)
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:
GET /invoices/{INVOICE_ID}/as/originalAdjuntos (tanto emitidas como recibidas): attachments[].link
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.
Paso 2: Descargar el archivo
Sección titulada «Paso 2: Descargar el archivo»Los campos de URL devueltos por la API (download_legal_url, attachments[].link) son rutas relativas. Antepónles la URL base de tu entorno.
Descarga usando download_legal_url (facturas emitidas, legal)
Sección titulada «Descarga usando download_legal_url (facturas emitidas, legal)»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}'Descarga usando attachments[].link (adjuntos)
Sección titulada «Descarga usando attachments[].link (adjuntos)»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)»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/originaldevuelve el archivo recibido del emisor (original = legal). - Para facturas emitidas,
/invoices/{INVOICE_ID}/as/originalsolo 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.