rifven 0.1.0

Venezuelan RIF implementation useful for creating and validating RIF numbers
Documentation
  • Coverage
  • 100%
    9 out of 9 items documented1 out of 1 items with examples
  • Size
  • Source code size: 125.47 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.99 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • LeoBorai/rifven
    3 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • LeoBorai

Crates.io 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.

Motivation

Implement a crate to help create instances of valid RIF numbers

Usage

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);

License

Licensed under the Apache 2.0 and MIT licenses

Contributions

Every contribution to this project is welcome, feel free to either open a Pull Request or issue