{"id":384404,"date":"2026-10-11T14:59:19","date_gmt":"2026-10-11T14:59:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/checkoutbr-cpf-cnpj-and-brazilian-address-fields-for-woocommerce\/"},"modified":"2026-10-11T16:22:27","modified_gmt":"2026-10-11T16:22:27","slug":"checkoutbr","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/checkoutbr\/","author":23582475,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.3","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"CheckoutBR \u2013 CPF & CNPJ 2026 (Alphanumeric) Fields for WooCommerce","header_author":"WooGlobal Apps","header_description":"CPF, CNPJ (including the new alphanumeric CNPJ), person type, address number and neighborhood (bairro) for WooCommerce, with real check-digit validation. Works in the Checkout block and the classic checkout, and is compatible with the Brazilian Market meta keys.","assets_banners_color":"337a9b","last_updated":"2026-10-11 16:22:27","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/wooglobal-apps.vercel.app\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":45,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"wooglobalapps","date":"2026-10-11 14:59:06","revision":3739641},"1.1.0":{"tag":"1.1.0","author":"wooglobalapps","date":"2026-10-11 16:22:27","revision":3739775}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3739641,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3739641,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3739641,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3739641,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3739641,"resolution":"1","location":"assets","locale":"","width":1280,"height":1100},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3739641,"resolution":"2","location":"assets","locale":"","width":1280,"height":1500},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3739775,"resolution":"3","location":"assets","locale":"","width":1280,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3739775,"resolution":"4","location":"assets","locale":"","width":1280,"height":900}},"screenshots":{"1":"Checkout block: the customer picks the person type, then the CPF or CNPJ field appears (required).","2":"Classic checkout with person type, address number and neighborhood.","3":"Settings page with the free setup help card.","4":"Hire us tab: free installation and implementation services on WhatsApp."}},"plugin_section":[],"plugin_tags":[8287,61045,152487,66145,286],"plugin_category":[45],"plugin_contributors":[285412],"plugin_business_model":[],"class_list":["post-384404","plugin","type-plugin","status-publish","hentry","plugin_tags-brazil","plugin_tags-checkout-fields","plugin_tags-cnpj","plugin_tags-cpf","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-wooglobalapps","plugin_committers-wooglobalapps"],"banners":{"banner":"https:\/\/ps.w.org\/checkoutbr\/assets\/banner-772x250.png?rev=3739641","banner_2x":"https:\/\/ps.w.org\/checkoutbr\/assets\/banner-1544x500.png?rev=3739641","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/checkoutbr\/assets\/icon-128x128.png?rev=3739641","icon_2x":"https:\/\/ps.w.org\/checkoutbr\/assets\/icon-256x256.png?rev=3739641","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/checkoutbr\/assets\/screenshot-1.png?rev=3739641","caption":"Checkout block: the customer picks the person type, then the CPF or CNPJ field appears (required)."},{"src":"https:\/\/ps.w.org\/checkoutbr\/assets\/screenshot-2.png?rev=3739641","caption":"Classic checkout with person type, address number and neighborhood."},{"src":"https:\/\/ps.w.org\/checkoutbr\/assets\/screenshot-3.png?rev=3739775","caption":"Settings page with the free setup help card."},{"src":"https:\/\/ps.w.org\/checkoutbr\/assets\/screenshot-4.png?rev=3739775","caption":"Hire us tab: free installation and implementation services on WhatsApp."}],"raw_content":"<!--section=description-->\n<p><strong>Works in the new Checkout block and in the classic checkout. Supports the new alphanumeric CNPJ.<\/strong><\/p>\n\n<p>Brazilian stores need CPF or CNPJ, the address number and the neighborhood (bairro) for invoices (NF-e), payment gateways and shipping labels. Most field plugins only work with the old shortcode checkout, so the fields simply disappear when the store switches to the <strong>Checkout block<\/strong> \u2013 and most still reject the alphanumeric CNPJ issued since July 2026.<\/p>\n\n<p><strong>CheckoutBR<\/strong> adds the Brazilian fields to <strong>both<\/strong> checkouts. In the Checkout block it uses the official WooCommerce <em>Additional Checkout Fields<\/em> API, so the fields are native, saved with the order and validated on the server.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li><strong>Checkout block + classic checkout<\/strong> with the same fields, settings and validation.<\/li>\n<li><strong>Alphanumeric CNPJ<\/strong> (e.g. 12.ABC.345\/01DE-35) and the classic numeric CNPJ, validated with the official check-digit rule.<\/li>\n<li><strong>Person type<\/strong>: Individual (Pessoa F\u00edsica) or Company (Pessoa Jur\u00eddica). You can also accept only individuals or only companies.<\/li>\n<li><strong>CPF<\/strong> for individuals and <strong>CNPJ<\/strong> plus <strong>company name (raz\u00e3o social)<\/strong> for companies. The right document is required depending on the person type \u2013 enforced on the server, not only in the browser.<\/li>\n<li><strong>Real CPF validation<\/strong> with check digits. Sequences such as 111.111.111-11 are rejected.<\/li>\n<li><strong>Address number<\/strong> and <strong>neighborhood (bairro)<\/strong> for billing and shipping addresses.<\/li>\n<li>Optional <strong>birth date<\/strong> and <strong>mobile phone<\/strong> fields.<\/li>\n<li>Choose which fields are enabled, required or optional.<\/li>\n<li><strong>Input masks<\/strong> in the classic checkout (CPF, CNPJ with letters, CEP, phone, date). Values are stored without punctuation, CNPJ in uppercase.<\/li>\n<li>Optional <strong>CEP auto-fill<\/strong> with ViaCEP (off by default, see \"External services\").<\/li>\n<li><strong>Compatibility mode<\/strong> (on by default): uses the same order and customer fields as the Brazilian Market on WooCommerce plugin, so stores can switch with zero data loss.<\/li>\n<li>The fields appear only when the country is Brazil, so international customers are not affected.<\/li>\n<li>Shows the data on the <strong>order edit screen<\/strong>, <strong>order emails<\/strong>, the <strong>thank-you page<\/strong>, <strong>My Account<\/strong> (addresses and account details) and adds the number and neighborhood to the formatted address.<\/li>\n<li>Compatible with <strong>HPOS<\/strong> (High-Performance Order Storage) and the <strong>Cart\/Checkout blocks<\/strong>.<\/li>\n<li>Lightweight: one small vanilla JavaScript file, no jQuery plugins, no tracking.<\/li>\n<li>Translation ready.<\/li>\n<\/ul>\n\n<p><strong>Where is the data saved?<\/strong><\/p>\n\n<p>Every order gets the same meta keys, whatever checkout was used. With compatibility mode on (default): <code>_billing_persontype<\/code> (1 = individual, 2 = company), <code>_billing_cpf<\/code>, <code>_billing_cnpj<\/code>, <code>_billing_company<\/code>, <code>_billing_birthdate<\/code>, <code>_billing_cellphone<\/code>, <code>_billing_number<\/code>, <code>_billing_neighborhood<\/code>, <code>_shipping_number<\/code> and <code>_shipping_neighborhood<\/code> (customer meta: <code>billing_cpf<\/code>, <code>billing_number<\/code>\u2026). With compatibility mode off, the keys are prefixed: <code>_billing_checkoutbr_cpf<\/code>, <code>_billing_checkoutbr_number<\/code>\u2026 Block orders also keep the native Additional Checkout Fields data (<code>_wc_other\/checkoutbr\/\u2026<\/code>, <code>_wc_billing\/checkoutbr\/\u2026<\/code>).<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin can connect to <strong>ViaCEP<\/strong> (https:\/\/viacep.com.br), a free public web service that returns a Brazilian address for a postal code (CEP). It is used only to auto-fill the street, neighborhood, city and state at checkout.<\/p>\n\n<ul>\n<li>The feature is <strong>disabled by default<\/strong>. It runs only after the store owner enables \"CEP auto-fill (ViaCEP)\" in <strong>WooCommerce \u2192 CheckoutBR<\/strong>.<\/li>\n<li>When enabled, the customer's browser sends <strong>only the CEP<\/strong> typed in the postcode field (8 digits) to <code>https:\/\/viacep.com.br\/ws\/{CEP}\/json\/<\/code> when the postcode field is changed and the country is Brazil. No name, document, email or other personal data is sent, and nothing is sent from your server.<\/li>\n<li>ViaCEP website and terms of use: https:\/\/viacep.com.br\/ \u2013 the service is provided \"as is\" by its maintainers; see the website for its usage terms and limits.<\/li>\n<\/ul>\n\n<p>No other external service is used.<\/p>\n\n<h3>Support &amp; free setup<\/h3>\n\n<p>CheckoutBR works fully on its own: every feature is free and nothing is locked or required.<\/p>\n\n<p>If you want a hand, the plugin screen (<strong>WooCommerce \u2192 CheckoutBR<\/strong>) has a <strong>Help<\/strong> tab with quick tips and a <strong>Hire us<\/strong> tab. The \"Talk to us on WhatsApp\" and \"Hire on WhatsApp\" buttons are plain links: they open WhatsApp with a short message that contains only the plugin name and version (or the service you clicked). Nothing is sent automatically and no store or customer data is shared.<\/p>\n\n<ul>\n<li><strong>Free setup:<\/strong> we install and configure CheckoutBR on your store for free.<\/li>\n<li><strong>Custom work<\/strong> (optional): migration from Brazilian Market on WooCommerce, fixing checkout errors, NF-e \/ NFS-e invoice integration, custom checkout fields and validation. See <a href=\"https:\/\/wooglobal-apps.vercel.app\/br\/contratar.html?plugin=checkoutbr\">our services<\/a>.<\/li>\n<li>Questions and bug reports: <a href=\"https:\/\/wordpress.org\/support\/plugin\/checkoutbr\/\">support forum<\/a>.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Upload the <code>checkoutbr<\/code> folder to <code>\/wp-content\/plugins\/<\/code> or install it from <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Activate CheckoutBR.<\/li>\n<li>Go to <strong>WooCommerce \u2192 CheckoutBR<\/strong> to choose which fields are enabled or required.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20the%20new%20checkout%20block%3F\"><h3>Does it work with the new Checkout block?<\/h3><\/dt>\n<dd><p>Yes. The fields are registered with the WooCommerce Additional Checkout Fields API (WooCommerce 8.9 or newer). Person type, CPF, CNPJ, company name, birth date and mobile phone appear in the Contact information step; number and neighborhood appear in the address forms.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20classic%20%5Bwoocommerce_checkout%5D%20shortcode%3F\"><h3>Does it work with the classic [woocommerce_checkout] shortcode?<\/h3><\/dt>\n<dd><p>Yes. The same fields, validation and settings are used in the classic checkout, with input masks.<\/p><\/dd>\n<dt id=\"is%20the%20cpf%2Fcnpj%20really%20validated%3F\"><h3>Is the CPF\/CNPJ really validated?<\/h3><\/dt>\n<dd><p>Yes. The check digits are calculated on the server for both checkouts, and numbers made of a single repeated digit are rejected. When \"Individual\" is selected the CPF is required; when \"Company\" is selected the CNPJ (and, if enabled, the company name) is required.<\/p><\/dd>\n<dt id=\"in%20the%20checkout%20block%2C%20cpf%20and%20cnpj%20are%20both%20visible.%20why%3F\"><h3>In the Checkout block, CPF and CNPJ are both visible. Why?<\/h3><\/dt>\n<dd><p>Showing only the field for the selected person type needs conditional fields, available in recent WooCommerce versions. CheckoutBR uses them automatically when available. On older versions both fields are shown, but only the one for the selected person type is required.<\/p><\/dd>\n<dt id=\"what%20happens%20with%20customers%20outside%20brazil%3F\"><h3>What happens with customers outside Brazil?<\/h3><\/dt>\n<dd><p>The fields are hidden and not required when the billing (or shipping) country is not Brazil.<\/p><\/dd>\n<dt id=\"does%20it%20send%20data%20to%20other%20servers%3F\"><h3>Does it send data to other servers?<\/h3><\/dt>\n<dd><p>Only if you enable the optional CEP auto-fill: the customer's browser sends the CEP to ViaCEP. See the \"External services\" section.<\/p><\/dd>\n<dt id=\"can%20payment%20or%20invoice%20plugins%20read%20the%20values%3F\"><h3>Can payment or invoice plugins read the values?<\/h3><\/dt>\n<dd><p>Yes. Use the order meta keys listed in the description, for example <code>$order-&gt;get_meta( '_billing_cpf' )<\/code> (compatibility mode). CPF is stored as digits only; CNPJ as 14 uppercase letters\/digits.<\/p><\/dd>\n<dt id=\"does%20it%20accept%20the%20new%20alphanumeric%20cnpj%3F\"><h3>Does it accept the new alphanumeric CNPJ?<\/h3><\/dt>\n<dd><p>Yes. Since July 2026 new CNPJs may contain letters in the first 12 characters (for example 12.ABC.345\/01DE-35). CheckoutBR validates both the alphanumeric and the classic numeric format with the official check-digit rule (each character is worth its ASCII code minus 48). Lowercase input is accepted and saved in uppercase.<\/p><\/dd>\n<dt id=\"i%20use%20brazilian%20market%20on%20woocommerce%20%28woocommerce%20extra%20checkout%20fields%20for%20brazil%29.%20can%20i%20switch%3F\"><h3>I use Brazilian Market on WooCommerce (WooCommerce Extra Checkout Fields for Brazil). Can I switch?<\/h3><\/dt>\n<dd><p>Yes \u2013 you can migrate in 15 minutes, with zero data loss:<\/p>\n\n<ol>\n<li>Install and activate CheckoutBR. Keep <strong>Compatibility mode<\/strong> on (default).<\/li>\n<li>In <strong>WooCommerce \u2192 CheckoutBR<\/strong>, choose the fields you need and click <strong>Check existing Brazilian data<\/strong>: it counts the orders and customers that already use the compatible fields.<\/li>\n<li>Deactivate Brazilian Market on WooCommerce.<\/li>\n<li>Place a test order with the classic checkout or the Checkout block.<\/li>\n<\/ol>\n\n<p>CheckoutBR reads and writes the same order and customer fields (<code>_billing_persontype<\/code>, <code>_billing_cpf<\/code>, <code>_billing_cnpj<\/code>, <code>_billing_number<\/code>, <code>_billing_neighborhood<\/code>, <code>_billing_cellphone<\/code>, <code>_billing_birthdate<\/code>, <code>_shipping_number<\/code>, <code>_shipping_neighborhood<\/code>\u2026), so old orders keep showing CPF\/CNPJ, returning customers are pre-filled (also in the Checkout block) and integrations that read those fields keep working. RG, IE and gender saved by the old plugin are still shown on old orders.<\/p><\/dd>\n<dt id=\"are%20the%20fields%20removed%20when%20i%20uninstall%3F\"><h3>Are the fields removed when I uninstall?<\/h3><\/dt>\n<dd><p>The plugin settings are deleted. The data saved on orders and customers is kept, because it is part of your order history.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Welcome screen, Help and Hire us tabs, free setup help links, pt_BR translation; new plugin name.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"CPF &amp; CNPJ fields with the new alphanumeric CNPJ 2026, address number and bairro. Validated in the Checkout block and classic checkout.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/384404","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=384404"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wooglobalapps"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=384404"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=384404"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=384404"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=384404"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=384404"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=384404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}