{"id":87,"date":"2025-08-15T17:57:38","date_gmt":"2025-08-15T17:57:38","guid":{"rendered":"https:\/\/factuz.com\/blog\/?p=87"},"modified":"2025-08-15T17:57:38","modified_gmt":"2025-08-15T17:57:38","slug":"guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas","status":"publish","type":"post","link":"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/","title":{"rendered":"Gu\u00eda para Implementar C\u00f3digo QR BCD con Referencia RF en Facturas"},"content":{"rendered":"<h2>1. Introducci\u00f3n<\/h2>\n<p>El <strong>c\u00f3digo QR BCD (Banking Contact Data)<\/strong> es un formato est\u00e1ndar europeo para pagos SEPA, que permite a los clientes escanear un QR desde su app bancaria y que todos los datos de la transferencia se completen autom\u00e1ticamente:<\/p>\n<ul>\n<li>IBAN del beneficiario<\/li>\n<li>Importe exacto<\/li>\n<li>Referencia de pago (estructurada o libre)<\/li>\n<li>Concepto opcional<\/li>\n<\/ul>\n<p>En esta gu\u00eda aprender\u00e1s a:<\/p>\n<ol>\n<li>Generar la <strong>referencia estructurada RF<\/strong> con d\u00edgitos de control.<\/li>\n<li>Crear el texto BCD con los datos del pago.<\/li>\n<li>(Opcional) Generar la imagen QR lista para imprimir en la factura.<\/li>\n<\/ol>\n<hr \/>\n<h2>2. Estructura del C\u00f3digo BCD<\/h2>\n<p>El QR contiene un <strong>texto plano<\/strong> con formato fijo, cada campo separado por salto de l\u00ednea <code>\\n<\/code>.<\/p>\n<pre><code>BCD\r\n002\r\n1\r\nSCT\r\n&lt;BIC del banco receptor&gt;\r\n&lt;Nombre del beneficiario&gt;\r\n&lt;IBAN del beneficiario&gt;\r\n&lt;EUR + importe&gt;\r\n&lt;Referencia de pago&gt;\r\n&lt;Concepto opcional&gt;\r\n<\/code><\/pre>\n<p>Ejemplo:<\/p>\n<pre><code>BCD\r\n002\r\n1\r\nSCT\r\nBE12XXXX1234XXXXXX\r\nFactuz SRL.\r\nBE55363148895444\r\nEUR7420.00\r\nRF18+++000\/2025\/15485+++\r\nFactura 15485\r\n<\/code><\/pre>\n<hr \/>\n<h2>3. C\u00e1lculo de la Referencia RF<\/h2>\n<p>La referencia RF se calcula siguiendo el est\u00e1ndar <strong>ISO 11649<\/strong>:<\/p>\n<pre><code class=\"language-php\">function doc_models_calculate_rf_reference($raw_reference) {\r\n    \/\/ Limpia espacios y caracteres no v\u00e1lidos\r\n    $clean_ref = preg_replace('\/[^0-9A-Za-z]\/', '', strtoupper($raw_reference));\r\n\r\n    \/\/ A\u00f1adir 'RF00' temporalmente\r\n    $temp_ref = $clean_ref . 'RF00';\r\n\r\n    \/\/ Mover 4 primeras posiciones al final\r\n    $temp_ref_rearranged = substr($temp_ref, 4) . substr($temp_ref, 0, 4);\r\n\r\n    \/\/ Convertir letras a n\u00fameros (A=10, ..., Z=35)\r\n    $numeric_ref = '';\r\n    foreach (str_split($temp_ref_rearranged) as $char) {\r\n        if (ctype_alpha($char)) {\r\n            $numeric_ref .= ord($char) - 55;\r\n        } else {\r\n            $numeric_ref .= $char;\r\n        }\r\n    }\r\n\r\n    \/\/ Calcular d\u00edgitos de control\r\n    $check_digits = 98 - bcmod($numeric_ref, '97');\r\n\r\n    \/\/ Retornar en formato RFNNxxxxxxxx\r\n    return 'RF' . str_pad($check_digits, 2, '0', STR_PAD_LEFT) . $clean_ref;\r\n}\r\n<\/code><\/pre>\n<p>Ejemplo:<\/p>\n<pre><code class=\"language-php\">echo doc_models_calculate_rf_reference(\"+++000\/2025\/15485+++\");\r\n\/\/ RF18+++000\/2025\/15485+++\r\n<\/code><\/pre>\n<hr \/>\n<h2>4. Generaci\u00f3n del Texto BCD<\/h2>\n<pre><code class=\"language-php\">function doc_models_generate_bcd_text($bic, $beneficiary, $iban, $amount, $rf_reference, $remittance_info = '') {\r\n    $bcd  = \"BCD\\n\";\r\n    $bcd .= \"002\\n\"; \/\/ Versi\u00f3n\r\n    $bcd .= \"1\\n\";   \/\/ Car\u00e1cter de codificaci\u00f3n UTF-8\r\n    $bcd .= \"SCT\\n\"; \/\/ Tipo de transferencia SEPA\r\n    $bcd .= strtoupper($bic) . \"\\n\";\r\n    $bcd .= $beneficiary . \"\\n\";\r\n    $bcd .= strtoupper(str_replace(' ', '', $iban)) . \"\\n\";\r\n    $bcd .= \"EUR\" . number_format($amount, 2, '.', '') . \"\\n\";\r\n    $bcd .= $rf_reference . \"\\n\";\r\n    $bcd .= $remittance_info;\r\n\r\n    return $bcd;\r\n}\r\n<\/code><\/pre>\n<p>Ejemplo:<\/p>\n<pre><code class=\"language-php\">$rf = doc_models_calculate_rf_reference(\"+++000\/2025\/15485+++\");\r\n\r\n$bcd_text = doc_models_generate_bcd_text(\r\n    \"BE12XXXX1234XXXXXX\",\r\n    \"Factuz SRL.\",\r\n    \"BE55363148895444\",\r\n    7420.00,\r\n    $rf,\r\n    \"Factura 15485\"\r\n);\r\n\r\necho nl2br($bcd_text);\r\n<\/code><\/pre>\n<hr \/>\n<h2>5. Generar el QR en PNG<\/h2>\n<pre><code class=\"language-php\">require 'phpqrcode\/qrlib.php'; \/\/ Librer\u00eda QR\r\n\r\n$filename = \"qr_factura.png\";\r\nQRcode::png($bcd_text, $filename, QR_ECLEVEL_M, 4);\r\n\r\necho \"&lt;img src='$filename'&gt;\";\r\n<\/code><\/pre>\n<hr \/>\n<h2>6. Uso Pr\u00e1ctico en Factura<\/h2>\n<ol>\n<li>En tu <strong>modelo de factura<\/strong>, calcula la referencia RF:\n<pre><code class=\"language-php\">$rf = doc_models_calculate_rf_reference(\"+++000\/2025\/15485+++\");\r\n<\/code><\/pre>\n<\/li>\n<li>Genera el texto BCD:\n<pre><code class=\"language-php\">$bcd = doc_models_generate_bcd_text($bic, $empresa, $iban, $total, $rf, \"Factura 15485\");\r\n<\/code><\/pre>\n<\/li>\n<li>Crea el QR y a\u00f1\u00e1delo al PDF.<\/li>\n<\/ol>\n<hr \/>\n<h2>7. Beneficios<\/h2>\n<ul>\n<li>Evita errores al teclear datos bancarios.<\/li>\n<li>Acelera el pago por parte del cliente.<\/li>\n<li>Cumple con el est\u00e1ndar europeo EPC QR Code.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Introducci\u00f3n El c\u00f3digo QR BCD (Banking Contact Data) es un formato est\u00e1ndar europeo para pagos SEPA, que permite a los clientes escanear un QR desde su app bancaria y que todos los datos de la transferencia se completen autom\u00e1ticamente: IBAN del beneficiario Importe exacto Referencia de pago (estructurada o libre) Concepto opcional En esta &#8230; <a title=\"Gu\u00eda para Implementar C\u00f3digo QR BCD con Referencia RF en Facturas\" class=\"read-more\" href=\"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/\" aria-label=\"Read more about Gu\u00eda para Implementar C\u00f3digo QR BCD con Referencia RF en Facturas\">Lire la suite<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30],"tags":[],"class_list":["post-87","post","type-post","status-publish","format-standard","hentry","category-non-classe-es"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Gu\u00eda para Implementar C\u00f3digo QR BCD con Referencia RF en Facturas - Factuz.com<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gu\u00eda para Implementar C\u00f3digo QR BCD con Referencia RF en Facturas - Factuz.com\" \/>\n<meta property=\"og:description\" content=\"1. Introducci\u00f3n El c\u00f3digo QR BCD (Banking Contact Data) es un formato est\u00e1ndar europeo para pagos SEPA, que permite a los clientes escanear un QR desde su app bancaria y que todos los datos de la transferencia se completen autom\u00e1ticamente: IBAN del beneficiario Importe exacto Referencia de pago (estructurada o libre) Concepto opcional En esta ... Lire la suite\" \/>\n<meta property=\"og:url\" content=\"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/\" \/>\n<meta property=\"og:site_name\" content=\"Factuz.com\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-15T17:57:38+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture est.\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/\",\"url\":\"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/\",\"name\":\"Gu\u00eda para Implementar C\u00f3digo QR BCD con Referencia RF en Facturas - Factuz.com\",\"isPartOf\":{\"@id\":\"https:\/\/factuz.com\/blog\/#website\"},\"datePublished\":\"2025-08-15T17:57:38+00:00\",\"author\":{\"@id\":\"https:\/\/factuz.com\/blog\/#\/schema\/person\/2f63a7c64d90b145b334ef8ad29bd1da\"},\"breadcrumb\":{\"@id\":\"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/#breadcrumb\"},\"inLanguage\":\"fr-BE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/factuz.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gu\u00eda para Implementar C\u00f3digo QR BCD con Referencia RF en Facturas\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/factuz.com\/blog\/#website\",\"url\":\"https:\/\/factuz.com\/blog\/\",\"name\":\"Factuz.com\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/factuz.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-BE\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/factuz.com\/blog\/#\/schema\/person\/2f63a7c64d90b145b334ef8ad29bd1da\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-BE\",\"@id\":\"https:\/\/factuz.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/252d70f5195b40452215a038a3d709a3fe845948b2d7533837335285fe1ead26?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/252d70f5195b40452215a038a3d709a3fe845948b2d7533837335285fe1ead26?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/factuz.com\/blog\"],\"url\":\"https:\/\/factuz.com\/blog\/author\/admin_zshlt523\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Gu\u00eda para Implementar C\u00f3digo QR BCD con Referencia RF en Facturas - Factuz.com","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/","og_locale":"fr_FR","og_type":"article","og_title":"Gu\u00eda para Implementar C\u00f3digo QR BCD con Referencia RF en Facturas - Factuz.com","og_description":"1. Introducci\u00f3n El c\u00f3digo QR BCD (Banking Contact Data) es un formato est\u00e1ndar europeo para pagos SEPA, que permite a los clientes escanear un QR desde su app bancaria y que todos los datos de la transferencia se completen autom\u00e1ticamente: IBAN del beneficiario Importe exacto Referencia de pago (estructurada o libre) Concepto opcional En esta ... Lire la suite","og_url":"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/","og_site_name":"Factuz.com","article_published_time":"2025-08-15T17:57:38+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"admin","Dur\u00e9e de lecture est.":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/","url":"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/","name":"Gu\u00eda para Implementar C\u00f3digo QR BCD con Referencia RF en Facturas - Factuz.com","isPartOf":{"@id":"https:\/\/factuz.com\/blog\/#website"},"datePublished":"2025-08-15T17:57:38+00:00","author":{"@id":"https:\/\/factuz.com\/blog\/#\/schema\/person\/2f63a7c64d90b145b334ef8ad29bd1da"},"breadcrumb":{"@id":"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/#breadcrumb"},"inLanguage":"fr-BE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/factuz.com\/blog\/es\/guia-para-implementar-codigo-qr-bcd-con-referencia-rf-en-facturas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/factuz.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Gu\u00eda para Implementar C\u00f3digo QR BCD con Referencia RF en Facturas"}]},{"@type":"WebSite","@id":"https:\/\/factuz.com\/blog\/#website","url":"https:\/\/factuz.com\/blog\/","name":"Factuz.com","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/factuz.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-BE"},{"@type":"Person","@id":"https:\/\/factuz.com\/blog\/#\/schema\/person\/2f63a7c64d90b145b334ef8ad29bd1da","name":"admin","image":{"@type":"ImageObject","inLanguage":"fr-BE","@id":"https:\/\/factuz.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/252d70f5195b40452215a038a3d709a3fe845948b2d7533837335285fe1ead26?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/252d70f5195b40452215a038a3d709a3fe845948b2d7533837335285fe1ead26?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/factuz.com\/blog"],"url":"https:\/\/factuz.com\/blog\/author\/admin_zshlt523\/"}]}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/factuz.com\/blog\/wp-json\/wp\/v2\/posts\/87","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/factuz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/factuz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/factuz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/factuz.com\/blog\/wp-json\/wp\/v2\/comments?post=87"}],"version-history":[{"count":1,"href":"https:\/\/factuz.com\/blog\/wp-json\/wp\/v2\/posts\/87\/revisions"}],"predecessor-version":[{"id":88,"href":"https:\/\/factuz.com\/blog\/wp-json\/wp\/v2\/posts\/87\/revisions\/88"}],"wp:attachment":[{"href":"https:\/\/factuz.com\/blog\/wp-json\/wp\/v2\/media?parent=87"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/factuz.com\/blog\/wp-json\/wp\/v2\/categories?post=87"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/factuz.com\/blog\/wp-json\/wp\/v2\/tags?post=87"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}