Scroll to navigation

Business::BR::Ids(3pm) User Contributed Perl Documentation Business::BR::Ids(3pm)


Business::BR::Ids - Modules for dealing with Brazilian identification codes (CPF, CNPJ, ...)


  use Business::BR::Ids;
  my $cpf = '390.533.447-05';
  print "ok as CPF" if test_id('cpf', $cpf);
  my $cnpj = '90.117.749/7654-80';
  print "ok as CNPJ" if test_id('cnpj', $cnpj);


This is a generic module for handling the various supported operations on Brazilian identification numbers and codes. For example, it is capable to test the correctness of CPF, CNPJ and IE numbers without the need for explicitly 'requiring' or 'using' this modules (doing it automatically on demand).

  test_id($entity_type, @args); 
  test_id('cpf', $cpf); # the same as "require Business::BR::CPF; Business::BR::CPF::test_cpf($cpf)"

Tests for correct inputs of ids which have a corresponding Business::BR module. For now, the supported id types are 'cpf', 'cnpj', 'ie', and 'pis'.

  canon_id($entity_type, @args)

Transform the input to a canonical form. The canonical form is well-defined and as short as possible. For instance, "canon_id('cpf', '29.128.129-11')" returns '02912812911' which has exactly 11 digits and no extra character.


"test_id" is exported by default. "canon_id", "format_id", "parse_id" and "random_id" are exported on demand.


Details on handling CPF, CNPJ, IE and PIS can be found in the specific modules:

  • Business::BR::CPF
  • Business::BR::CNPJ
  • Business::BR::IE
  • Business::BR::PIS

Please reports bugs via CPAN RT,


A. R. Ferreira, <>


Copyright (C) 2005-2007 by A. R. Ferreira

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

2022-06-29 perl v5.34.0