Primeros pasos
Configurar los datos fiscales de las cuentas [OBLIGATORIO]
Sección titulada «Configurar los datos fiscales de las cuentas [OBLIGATORIO]»Desde la app (icono de engranaje) o a través de la API mediante el endpoint /accounts. Crea tantas cuentas como necesites en sandbox para pruebas.
- eDocExchange: crea cuentas para tus empresas en la App (vinculación manual en la sección “Developers”). Si eres un revendedor, puedes automatizar el aprovisionamiento de eDocExchange para ofrecer un servicio más completo a tus clientes finales.
- eDocSync: crea cuentas de usuario a través de la API (POST /accounts).
curl --request POST \ --url https://api-staging.b2brouter.net/accounts \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data '{ "account": { "country": "{COUNTRY_CODE}", "tin_value": "{YOUR_TAX_IDENTIFICATION_NUMBER}", "tin_scheme": "{YOUR_TAX_IDENTIFICATION_SCHEME}", "name": "{ENTERPRISE_NAME}", "address": "{YOUR_STREET}", "city": "{YOUR_CITY}", "postalcode": "00000", "email": "{MAIN_EMAIL}" } }'Cuando crees una cuenta a través de la API, lee el
idde la respuesta y guárdalo en tu entorno para futuras solicitudes de esa empresa.
- Guía de Accounts: https://developer.b2brouter.net/docs/accounts_guide
- Configurar tu empresa: https://www.b2brouter.net/docs/#/en/set-up/setting-up-your-company
- Guía de Schemes: https://developer.b2brouter.net/docs/schemes_guide#/
- Referencia de la API: https://developer.b2brouter.net/reference/create-account#/
Activar transportes [Recomendado: b2brouter, mail y peppol] [Opcional] [OBLIGATORIO para casos Peppol BE]
Sección titulada «Activar transportes [Recomendado: b2brouter, mail y peppol] [Opcional] [OBLIGATORIO para casos Peppol BE]»curl --request POST \ --url https://api-staging.b2brouter.net/accounts/{ACCOUNT_ID}/transports \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data '{ "transport": { "code": "peppol", "enabled": true, "reception": true, "standard_documents": true, "invoice": true, "credit_note": true, "application_response": true, "pin_scheme": "{YOUR_IDENTIFICATION_SCHEME}", "pin_value": "{YOUR_IDENTIFICATION_NUMBER}" } }'- Guía de Transportes: https://developer.b2brouter.net/docs/transports_guide/
- Referencia de la API: https://developer.b2brouter.net/reference/create-transport/
Activar informe fiscal [OBLIGATORIO para casos ES e IT]
Sección titulada «Activar informe fiscal [OBLIGATORIO para casos ES e IT]»curl --request POST \ --url https://api-staging.b2brouter.net/accounts/{ACCOUNT_ID}/tax_report_settings \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data '{ "tax_report_setting": { "code": "verifactu", "auto_generate": true, "auto_send": true, "enabled": true, "reason_vat_exempt": "E1", "special_regime_key": "01", "special_regime_key_igic": "01", "reason_no_subject": "N1", "credit_note_code": "R1" } }'- Guía de Informes Fiscales: https://developer.b2brouter.net/docs/tax_report_settings_guide
- Referencia de la API: https://developer.b2brouter.net/reference/create-tax-report-setting#/
Listar cuentas para obtener el ACCOUNT_ID [Opcional]
Sección titulada «Listar cuentas para obtener el ACCOUNT_ID [Opcional]»Si aún no tienes los IDs de tu grupo de integración, esta es la forma más rápida de listarlos. También puedes copiar el ID de una cuenta desde la pestaña App → Developers.
curl --request GET \ --url 'https://api-staging.b2brouter.net/accounts?offset=0&limit=25' \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json'- Referencia de la API: https://developer.b2brouter.net/reference/get-accounts#/
Siguiente paso: sigue la guía de flujo de envío de extremo a extremo para crear contacts, crear/importar facturas, enviarlas y recuperar/descargar los documentos finales.
Buscar contacts [Opcional]
Sección titulada «Buscar contacts [Opcional]»Si lo encuentras, puedes saltar directamente al paso 4) recuperando el id.
curl --request GET \ --url 'https://api-staging.b2brouter.net/accounts/{ACCOUNT_ID}/contacts?offset=0&limit=25&name=B2Brouter%20Global%20S.L.' \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json'- Referencia de la API: https://developer.b2brouter.net/reference/get-contacts#/
Buscar en el directorio [Opcional]
Sección titulada «Buscar en el directorio [Opcional]»Si existe, puedes usar los datos para crear tu contact.
curl --request GET \ --url https://api-staging.b2brouter.net/directory/es/ESB63276174 \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json'- Guía del Directorio: https://developer.b2brouter.net/docs/directory#/
- Referencia de la API: https://developer.b2brouter.net/reference/lookup-directory-by-country#/
Crear contact [Opcional]
Sección titulada «Crear contact [Opcional]»curl --request POST \ --url https://api-staging.b2brouter.net/accounts/{ACCOUNT_ID}/contacts \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data '{ "contact": { "language": "es", "is_client": true, "is_provider": true, "public_sector": false, "name": "B2Brouter Global S.L.", "tin_value": "ESB63276174", "tin_scheme": "9920", "country": "es", "email": "john.doe@example.com", "address": "Avda. Diagonal, 433 1º1ª", "postalcode": "08036", "province": "Barcelona", "city": "Barcelona", "transport_type_code": "b2brouter", "document_type_code": "xml.facturae.3.2.2", "payment_method": 1 } }'Si no estás seguro de qué tin_scheme, transport_type_code o document_type_code usar, recuerda utilizar los endpoints de listas de códigos.
- Guía de Schemes: https://developer.b2brouter.net/docs/schemes_guide#/
- Referencia de la API: https://developer.b2brouter.net/reference/create-contact#/
- Referencia de la API - Tipos de transporte: https://developer.b2brouter.net/reference/get-transport-types#/
- Referencia de la API - Tipos de documento: https://developer.b2brouter.net/reference/get-document-types#/
- Referencia de la API - Schemes: https://developer.b2brouter.net/reference/get-schemes#/
Crear y enviar una factura sencilla [OBLIGATORIO]
Sección titulada «Crear y enviar una factura sencilla [OBLIGATORIO]»Recuerda que si no quieres gestionar contacts en B2Brouter, en lugar de usar contact_id, puedes incrustar un objeto contact completo dentro de la invoice en la misma solicitud POST /invoices; en ese caso, proporciona los datos del contact en cada factura.
Si tu sistema ya genera un XML de factura electrónica reconocido, la integración más sencilla es importarlo directamente.
Sin embargo, si atiendes a clientes en múltiples países, JSON suele ser más portable porque algunos formatos tienen campos específicos por país.
Usa GET /document_types para comprobar los tipos de documento disponibles.
curl --request POST \ --url https://api-staging.b2brouter.net/accounts/{ACCOUNT_ID}/invoices \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'content-type: application/json' \ --data '{ "send_after_import": true, "invoice": { "type": "IssuedInvoice", "bank_account": { "type": "iban" }, "terms": "custom", "invoice_lines_attributes": [ { "unit": 1, "quantity": 1, "description": "Servicio de ejemplo", "price": 10, "taxes_attributes": [ { "name": "VAT", "category": "S", "percent": 21 } ] } ], "apply_taxes_to_charge": false, "charge_is_reimbursable_expense": false, "number": "123456", "contact_id": {CONTACT.ID}, "date": "2025-09-24", "due_date": "2025-10-24" } }'- Enviar facturas vía JSON (ejemplo Peppol): https://developer.b2brouter.net/docs/send_an_invoice_through_peppol_via_json_payload#/
- Guía de cálculo de facturas: https://developer.b2brouter.net/docs/invoice_calculation#/
- Guía de métodos de pago: https://developer.b2brouter.net/docs/payment_method_guide#/
- Referencia de la API: https://developer.b2brouter.net/reference/create-invoice#/
- Referencia de la API - Importar XML: https://developer.b2brouter.net/reference/import-invoice#/
Recuperar datos de la factura emitida [OPCIONAL]
Sección titulada «Recuperar datos de la factura emitida [OPCIONAL]»Una vez enviada, puedes recuperar el invoice.id de la respuesta y hacer un GET con toda la información.
Si tienes el Informe Fiscal habilitado (ES/IT), también puedes recuperar el tax_report_id para ver todos los detalles.
Recuerda que puedes configurar Webhooks para los cambios de estado.
Listar facturas
Sección titulada «Listar facturas»Para obtener las facturas más recientes en formato JSON:
curl --request GET \ --url 'https://api-staging.b2brouter.net/accounts/{ACCOUNT_ID}/invoices?offset=0&limit=25' \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json'Obtener una factura
Sección titulada «Obtener una factura»Para recuperar una factura específica en formato JSON (la mayoría de campos ya se devuelven en la respuesta de creación):
curl --request GET \ --url 'https://api-staging.b2brouter.net/invoices/{INVOICE_ID}?include=lines' \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json'Obtener una factura con un tipo de documento específico
Sección titulada «Obtener una factura con un tipo de documento específico»Si necesitas la factura electrónica renderizada en un formato específico:
curl --request GET \ --url https://api-staging.b2brouter.net/invoices/{INVOICE_ID}/as/{document_type_code} \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json'Realizando un GET sobre la download_legal_url proporcionada en el payload de la factura, puedes descargar el documento legal entregado al usuario final (para reenvío o archivo en tu sistema).
Obtener un informe fiscal [CASOS ES e IT]
Sección titulada «Obtener un informe fiscal [CASOS ES e IT]»Obtén todos los detalles de una declaración, incluyendo el enlace y el QR:
curl --request GET \ --url https://api-staging.b2brouter.net/tax_reports/{TAX_REPORT_ID} \ --header 'X-B2B-API-Key: {YOUR_API_KEY}' \ --header 'X-B2B-API-Version: {YOUR_API_VERSION}' \ --header 'accept: application/json'- Enviar facturas (de extremo a extremo): https://developer.b2brouter.net/docs/send_invoices_end_to_end#/
Pasar a producción
Sección titulada «Pasar a producción»- Regístrate (si aún no lo has hecho) en https://app.b2brouter.net/es/register
- Una vez conectado, ve a Suscripción y suscríbete a eDocExchange mensual según el volumen aproximado de transacciones.
- Cambios técnicos mínimos para migrar:
- Desde sandbox: cambia la clave
test_por una clave de producción. La URL base (https://api.b2brouter.net) sigue siendo la misma. - Desde staging: cambia el dominio de
api-staging.b2brouter.netaapi.b2brouter.nety usa la clave API de producción. - Actualiza el
{ACCOUNT_ID}(si difiere entre entornos). - El payload y el comportamiento funcional son los mismos en todos los entornos.
- Desde sandbox: cambia la clave
No necesitas tener toda la integración terminada: puedes pasar a producción con el flujo básico y seguirás teniendo sandbox (y staging, si es necesario) disponible para continuar desarrollando con el soporte de los técnicos de B2Brouter.
Buenas prácticas
Sección titulada «Buenas prácticas»- Si gestionas varias empresas y necesitan acceso a B2Brouter, sepáralas en grupos para mayor privacidad. (Gestión de usuarios y propiedad desde la configuración de la cuenta en la app.)
- No envíes facturas reales desde sandbox o staging por email o b2brouter a destinatarios reales: crea cuentas y contacts de prueba (puedes hacer envíos internos para revisar la recepción con un email de prueba).
- Evita usar NIF/IDs fiscales reales de terceros que no vayas a integrar.
- Simplifica el proceso: busca un flujo limpio y global; evita reglas locales innecesarias si el transporte y el formato ya las resuelven.
- Prioriza JSON. Aunque B2Brouter puede convertir a la gran mayoría de formatos globales, trabajar con nuestro formato base te permite facturar globalmente en todo tipo de formatos sin problemas legales.
Guías recomendadas para empezar
Sección titulada «Guías recomendadas para empezar»- Accounts (crear/listar/actualizar): https://developer.b2brouter.net/docs/accounts_guide
- Directorio (búsqueda, schemes, rutas del sector público como DIR3/DIRe): https://developer.b2brouter.net/docs/directory
- Transportes (email, Peppol, b2brouter, FACe, SFTP…): https://developer.b2brouter.net/docs/transports_guide
- Configuración de informes fiscales (TicketBAI, SDI): https://developer.b2brouter.net/docs/tax_report_settings_guide
- Schemes / Identificadores (TIN, CIN, PIN, EAS, …): https://developer.b2brouter.net/docs/schemes_guide#/
- Pagos (métodos/valores estándar, p. ej., transferencia bancaria, domiciliación…): https://developer.b2brouter.net/docs/payment_method_guide#/
- Comportamientos específicos por país (TicketBAI, SDI, VERI*FACTU…):
- Italy SDI (FatturaPA 1.3.2, campos y reglas): https://developer.b2brouter.net/docs/send_an_invoice_through_sdi#/
- VERI*FACTU (AEAT, requisitos y FAQ): https://developer.b2brouter.net/docs/verifactu#/
- TicketBAI (conceptos y obligaciones): https://developer.b2brouter.net/docs/ticketbai#/
Manual de usuario
Sección titulada «Manual de usuario»Para los usuarios que necesitan usar la aplicación web, nuestra documentación de la plataforma está disponible aquí:
https://www.b2brouter.net/docs/#/es/README
¡Empecemos!
Sección titulada «¡Empecemos!»Recuerda que durante todo el proceso estaremos encantados de ayudarte a través del Soporte.
¡Mucho éxito en tu proceso de integración!