Ir al contenido
Log in

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).
Ventana de terminal
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 id de la respuesta y guárdalo en tu entorno para futuras solicitudes de esa empresa.

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]»
Ventana de terminal
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}"
}
}'

Activar informe fiscal [OBLIGATORIO para casos ES e IT]

Sección titulada «Activar informe fiscal [OBLIGATORIO para casos ES e IT]»
Ventana de terminal
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"
}
}'

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.

Ventana de terminal
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'

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.

Si lo encuentras, puedes saltar directamente al paso 4) recuperando el id.

Ventana de terminal
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'

Si existe, puedes usar los datos para crear tu contact.

Ventana de terminal
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'
Ventana de terminal
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.

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.

Ventana de terminal
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"
}
}'

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.

Para obtener las facturas más recientes en formato JSON:

Ventana de terminal
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'

Para recuperar una factura específica en formato JSON (la mayoría de campos ya se devuelven en la respuesta de creación):

Ventana de terminal
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:

Ventana de terminal
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).

Obtén todos los detalles de una declaración, incluyendo el enlace y el QR:

Ventana de terminal
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'

  1. Regístrate (si aún no lo has hecho) en https://app.b2brouter.net/es/register
  2. Una vez conectado, ve a Suscripción y suscríbete a eDocExchange mensual según el volumen aproximado de transacciones.
  3. 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.net a api.b2brouter.net y 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.

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.


  • 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.

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

Recuerda que durante todo el proceso estaremos encantados de ayudarte a través del Soporte.

¡Mucho éxito en tu proceso de integración!