Ir al contenido
Log in

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 en rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode)
  • ID de términos de negocio: BT-81
MétodoReferencia internaUBLFacturaeFatturaPADescripción
CASH11001MP01Pago en moneda (incluyendo billetes y monedas) en circulación, incluidos los depósitos en cuentas corrientes.
DEBIT24902MP19Débito directo (el importe se adeudará o se ha adeudado directamente desde la cuenta bancaria del cliente).
HOLD3803MP12Indica que el banco debe retener el pago para su cobro por el beneficiario u otras instrucciones.
TRANSFER43004MP05Transferencia bancaria (el importe se abonará o se ha abonado directamente en la cuenta bancaria del proveedor).
AWARDING7ZZZ07Pago por cesión o adjudicación.
PAGARE N O106010MP06Pagaré 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.
CHEQUE112011MP02Pago 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.
REPOSITION12ZZZ12MP22Reembolso en cuenta abierta.
SPECIAL/OTHER13ZZZ13MP22Define cualquier otro método de pago; use payment_method_text para descripciones personalizadas.
COMPENSATION149714MP22Importes que dos socios se deben mutuamente y que se compensan para evitar pagos innecesarios.
PLUSGIRO155015MP18Método de pago sueco estándar que utiliza el sistema de giro postal.
CHEQUE B172317MP03Pago 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 CARD194819MP08Pago mediante una tarjeta emitida por un banco u otra entidad financiera.
DEBIT TRANSFER313104MP13Pago mediante movimiento de débito de fondos de una cuenta a otra.
CREDIT CARD545419MP08Pago realizado mediante tarjeta de crédito.
BANKGIRO565604MP03Método de pago que utiliza la red bancaria de giro.
TRANSFER SEPA585804MP05Transferencia de crédito SEPA (los fondos se abonan en la cuenta bancaria del proveedor).
DEBIT SEPA595902MP19Débito directo SEPA (los fondos se adeudan en la cuenta bancaria del cliente; puede requerirse mandato).
GIRO101ZZZ13Giro.
PAY NOW102ZZZ13Pago inmediato (Pay Now).

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.

  • Cuenta bancaria del cliente (pagador): DEBIT (2), DEBIT SEPA (59). Requerido en formatos/flujos específicos, no universalmente. Por ejemplo, XRechnung \common_xrechnung_v23 requiere invoice.contact_iban, XRechnung v3 también requiere mandate_reference_identifier, y Facturae requiere la cuenta bancaria del cliente (contact.bank_account_number o un invoice.contact_iban válido). Esto no aplica a IssuedSimplifiedInvoice.
  • Condiciones de pago: DEBIT (2). Proporcione terms (no puede ser 0 ni estar en blanco).
  • Fecha de vencimiento del pago (la mayoría de las exportaciones):
    Si establece un payment_method y usa terms = "custom", debe proporcionar due_date (excepto para algunos transportes como PEPPOL y SDI). Si usa un terms no personalizado, el sistema calcula due_date automáticamente.
  • Cuenta bancaria de la empresa (beneficiario): TRANSFER (4), TRANSFER SEPA (58), DEBIT TRANSFER (31), PLUSGIRO (15), BANKGIRO (56), AWARDING (7).
    Proporcione bank_account_id (o incluya el objeto bank_account al crear/actualizar la factura).
  • Descripción personalizada: SPECIAL/OTHER (13).
    Proporcione payment_method_text (solo se conserva cuando payment_method = 13).
  • Todos los demás métodos de pago no requieren campos bancarios/de pago adicionales.
  • 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).
  • IssuedSimplifiedInvoice: DEBIT (2) / DEBIT SEPA (59) no requieren invoice.contact_iban.
  • Facturae:
    • Si establece un payment_method y la factura no es una nota de crédito, debe proporcionar un terms válido (no personalizado) o due_date (cuando use terms = "custom").
    • Si la factura es DEBIT/DEBIT SEPA, la cuenta bancaria del cliente debe estar disponible (bank_account_number del contacto o un invoice.contact_iban vá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.
  • 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_reference e invoice.contact_iban.
    • Para los perfiles v3, también se requiere mandate_reference_identifier.

A continuación se muestra cómo usar los principales endpoints para gestionar pagos y cuentas bancarias asociadas a contactos y facturas.

Al crear una cuenta bancaria, debe especificar el type de la cuenta para indicar qué campos usar:

  • number: use solo el campo number.
    • number: Número de cuenta bancaria.
  • iban: use iban y bic.
    • iban: Número de cuenta bancaria internacional.
    • bic: Código SWIFT del banco.

Ejemplo de solicitud:

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

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:

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'
'

Referencia de API de contactos

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:

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'
'

Y si no ha proporcionado bank_account_id, siempre puede incluir el objeto bank_account:

Ventana de terminal
{"invoice": {
...
"bank_account": {
"type": "number",
"number": "ES9121000418450200051332"
},
...
}}
'