Métodos de pago
Esta guía describe los códigos de método de pago internos de B2Brouter y su codificación correspondiente en UBL, Facturae y FatturaPA.
Equivalencias:
- Campo interno de B2Brouter:
payment_method - Campo Facturae:
PaymentMeans(elemento en/facturae:Facturae/Invoices/Invoice/PaymentDetails/Installment/PaymentMeans) - Campo UBL:
cbc:PaymentMeansCode(elemento en/Invoice/cac:PaymentMeans/cbc:PaymentMeansCode) - Campo FatturaPA:
ModalitaPagamento(elemento en/p:FatturaElettronica/FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/ModalitaPagamento) - Campo CII:
TypeCode(elemento enrsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode) - ID de términos de negocio:
BT-81
1. Tabla de códigos de pago
Sección titulada «1. Tabla de códigos de pago»| Método | Referencia interna | UBL | Facturae | FatturaPA | Descripción |
|---|---|---|---|---|---|
| CASH | 1 | 10 | 01 | MP01 | Pago en moneda (incluyendo billetes y monedas) en circulación, incluidos los depósitos en cuentas corrientes. |
| DEBIT | 2 | 49 | 02 | MP19 | Débito directo (el importe se adeudará o se ha adeudado directamente desde la cuenta bancaria del cliente). |
| HOLD | 3 | 8 | 03 | MP12 | Indica que el banco debe retener el pago para su cobro por el beneficiario u otras instrucciones. |
| TRANSFER | 4 | 30 | 04 | MP05 | Transferencia bancaria (el importe se abonará o se ha abonado directamente en la cuenta bancaria del proveedor). |
| AWARDING | 7 | ZZZ | 07 | Pago por cesión o adjudicación. | |
| PAGARE N O | 10 | 60 | 10 | MP06 | Pagaré no transferible. Pago mediante una promesa incondicional por escrito hecha por una persona a otra, firmada por el librador, comprometiéndose a pagar a la vista o en una fecha futura fija o determinable una cantidad cierta de dinero, a la orden o al portador. |
| CHEQUE | 11 | 20 | 11 | MP02 | Pago mediante un formulario preimpreso en el que se dan instrucciones al titular de una cuenta (banco o sociedad de construcción) para pagar una cantidad determinada a un beneficiario designado. |
| REPOSITION | 12 | ZZZ | 12 | MP22 | Reembolso en cuenta abierta. |
| SPECIAL/OTHER | 13 | ZZZ | 13 | MP22 | Define cualquier otro método de pago; use payment_method_text para descripciones personalizadas. |
| COMPENSATION | 14 | 97 | 14 | MP22 | Importes que dos socios se deben mutuamente y que se compensan para evitar pagos innecesarios. |
| PLUSGIRO | 15 | 50 | 15 | MP18 | Método de pago sueco estándar que utiliza el sistema de giro postal. |
| CHEQUE B | 17 | 23 | 17 | MP03 | Pago mediante un formulario preimpreso, completado por una entidad financiera, en el que se dan instrucciones al titular de una cuenta (banco o sociedad de construcción) para pagar una cantidad determinada a un beneficiario designado. |
| BANK CARD | 19 | 48 | 19 | MP08 | Pago mediante una tarjeta emitida por un banco u otra entidad financiera. |
| DEBIT TRANSFER | 31 | 31 | 04 | MP13 | Pago mediante movimiento de débito de fondos de una cuenta a otra. |
| CREDIT CARD | 54 | 54 | 19 | MP08 | Pago realizado mediante tarjeta de crédito. |
| BANKGIRO | 56 | 56 | 04 | MP03 | Método de pago que utiliza la red bancaria de giro. |
| TRANSFER SEPA | 58 | 58 | 04 | MP05 | Transferencia de crédito SEPA (los fondos se abonan en la cuenta bancaria del proveedor). |
| DEBIT SEPA | 59 | 59 | 02 | MP19 | Débito directo SEPA (los fondos se adeudan en la cuenta bancaria del cliente; puede requerirse mandato). |
| GIRO | 101 | ZZZ | 13 | Giro. | |
| PAY NOW | 102 | ZZZ | 13 | Pago inmediato (Pay Now). |
1.1 Campos adicionales requeridos (API)
Sección titulada «1.1 Campos adicionales requeridos (API)»Según el payment_method, puede que necesite proporcionar campos adicionales para que la factura pueda generarse/exportarse correctamente.
Esta sección se centra en los requisitos universales de datos bancarios/de pago; algunos formatos de factura electrónica pueden restringir aún más los códigos de pago aceptados.
Requisitos universales
Sección titulada «Requisitos universales»- Cuenta bancaria del cliente (pagador): DEBIT (2), DEBIT SEPA (59).
Requerido en formatos/flujos específicos, no universalmente. Por ejemplo,
XRechnung \common_xrechnung_v23requiereinvoice.contact_iban,XRechnung v3también requieremandate_reference_identifier, yFacturaerequiere la cuenta bancaria del cliente (contact.bank_account_numbero uninvoice.contact_ibanválido). Esto no aplica aIssuedSimplifiedInvoice. - Condiciones de pago: DEBIT (2).
Proporcione
terms(no puede ser0ni estar en blanco). - Fecha de vencimiento del pago (la mayoría de las exportaciones):
Si establece unpayment_methody usaterms = "custom", debe proporcionardue_date(excepto para algunos transportes como PEPPOL y SDI). Si usa untermsno personalizado, el sistema calculadue_dateautomáticamente. - Cuenta bancaria de la empresa (beneficiario): TRANSFER (4), TRANSFER SEPA (58), DEBIT TRANSFER (31), PLUSGIRO (15), BANKGIRO (56), AWARDING (7).
Proporcionebank_account_id(o incluya el objetobank_accountal crear/actualizar la factura). - Descripción personalizada: SPECIAL/OTHER (13).
Proporcionepayment_method_text(solo se conserva cuandopayment_method = 13). - Todos los demás métodos de pago no requieren campos bancarios/de pago adicionales.
Casos especiales (tipo de factura)
Sección titulada «Casos especiales (tipo de factura)»- IssuedSelfInvoice:
- DEBIT (2) / DEBIT SEPA (59) requieren
bank_account_id(cuenta bancaria de la empresa). - Los métodos de tipo transferencia (TRANSFER (4), TRANSFER SEPA (58), DEBIT TRANSFER (31), PLUSGIRO (15), BANKGIRO (56), AWARDING (7)) requieren
invoice.contact_iban(algunos flujos solo con PDF pueden no requerirlo, pero la mayoría de exportaciones de factura electrónica sí lo hacen).
- DEBIT (2) / DEBIT SEPA (59) requieren
- IssuedSimplifiedInvoice: DEBIT (2) / DEBIT SEPA (59) no requieren
invoice.contact_iban.
Casos especiales (formato de exportación)
Sección titulada «Casos especiales (formato de exportación)»- Facturae:
- Si establece un
payment_methody la factura no es una nota de crédito, debe proporcionar untermsválido (no personalizado) odue_date(cuando useterms = "custom"). - Si la factura es DEBIT/DEBIT SEPA, la cuenta bancaria del cliente debe estar disponible (
bank_account_numberdel contacto o uninvoice.contact_ibanválido). - Si la factura es TRANSFER (incluidos los métodos de tipo transferencia), la cuenta bancaria de la empresa debe estar disponible (mediante
bank_account_id/bank_account) y contener un número de cuenta/IBAN válido.
- Si establece un
- Svefaktura: los pagos por débito (DEBIT/DEBIT SEPA) no están admitidos.
- FatturaPA: COMPENSATION (14) no está permitido.
- XRechnung (UBL/CII):
- Si la factura es DEBIT/DEBIT SEPA, debe proporcionar
bank_assigned_creditor_referenceeinvoice.contact_iban. - Para los perfiles v3, también se requiere
mandate_reference_identifier.
- Si la factura es DEBIT/DEBIT SEPA, debe proporcionar
2. Uso de los endpoints
Sección titulada «2. Uso de los endpoints»A continuación se muestra cómo usar los principales endpoints para gestionar pagos y cuentas bancarias asociadas a contactos y facturas.
2.1. Crear cuentas bancarias
Sección titulada «2.1. Crear cuentas bancarias»Al crear una cuenta bancaria, debe especificar el type de la cuenta para indicar qué campos usar:
number: use solo el camponumber.number: Número de cuenta bancaria.
iban: useibanybic.iban: Número de cuenta bancaria internacional.bic: Código SWIFT del banco.
Ejemplo de solicitud:
curl --request POST \ --url https://api-staging.b2brouter.net/accounts/{ACCOUNT_ID}/bank_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''sufix es el sufijo utilizado para el identificador de acreedor en los archivos SEPA.
Respuesta de ejemplo:
{ "bank_account": { "type": "number", "id": 3296, "name": "Ejemplo S.L.", "number": "ES9121000418450200051332", "sufix": 123, "country": "es", "created_at": "2025-07-14T11:37:02.000Z", "updated_at": "2025-07-14T11:37:02.000Z" }}Guarde el bank_account.id para hacer referencia a esta cuenta en solicitudes futuras.
Referencia de API de cuentas bancarias
2.2. Crear contacto
Sección titulada «2.2. Crear contacto»Configurar los datos de pago para las facturas enviadas a un contacto resulta útil para evitar gestionar esta información cada vez que necesite enviar un documento.
Ejemplo de solicitud:
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''Referencia de API de contactos
2.3. Crear factura
Sección titulada «2.3. Crear factura»No necesita volver a especificar los campos de pago que ya estaban establecidos en el contacto a menos que necesite sobreescribirlos. Para minimizar las llamadas a la API, incluya todos los datos de pago requeridos —como payment_method, bank_account_id, payment_terms, etc.— directamente en la solicitud de creación de factura en lugar de crear Contactos o Cuentas bancarias de antemano.
Ejemplo de solicitud:
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' 'Y si no ha proporcionado bank_account_id, siempre puede incluir el objeto bank_account:
{"invoice": { ... "bank_account": { "type": "number", "number": "ES9121000418450200051332" }, ... }} '