Crate rifven[][src]


Venezuelan RIF implementation useful for creating and validating RIF numbers Documentation Build Lint Tests

What are RIF numbers?

RIF (Registro de Informacion Fiscal) in english Fiscal Information Registry is a number provided by a Venezuelan entity SAIME used to identify multiple entities for taxable purposes.

The RIF is composed by a kind which could be:

  • C: Township or Communal Council
  • E: Represents a foreigner natural person and stands for "Extranjera" and "Extranjero"
  • G: Represents a goverment entity and stands for "Gubernamental"
  • J: Used for a legal entity. Could be a natural person or a corporate entity and stands for "Jurídico"
  • P: Used on RIF numbers which belongs to passports
  • V: Represents a person with venezuelan citizenship and stands for "Venezolana" and "Venezolano"

An identifier number followed by a hyphen symbol and finally a checksum digit, as well followed by a hyphen symbol.


Implement a crate to help create instances of valid RIF numbers


Creating a new Rif instance providing each of its parts values such as Kind (J; V; P; G; C), identifier (tax payer ID), check number.

The following code, creates an instance of Rif for a RIF string which looks like J-07013380-5:

use rifven::{Kind, Rif};

let rif = Rif::new(Kind::Legal, 07013380, 5).unwrap();

assert_eq!(rif.kind(), Kind::Legal);
assert_eq!(rif.identifier(), 7013380);
assert_eq!(rif.checksum_digit(), 5);

You can also create instances of Rif from its string representation

use rifven::{Kind, Rif};
use std::str::FromStr;

let myrif = Rif::from_str("J-07013380-5").unwrap();

assert_eq!(Rif::new(Kind::Legal, 07013380, 5).unwrap(), myrif);



Venezuelan RIF identifier



The RIF kind represents the kind of entity this RIF belongs to.