View Source UkraineTaxidEx.Edrpou.Validator (ukraine_tax_id v0.1.1)

Functions for validating EDRPOU number format and checksum.

This module provides validation functions to verify if an EDRPOU number meets the standard requirements including length and checksum validation.

Validates an EDRPOU number to check if it meets length requirements and has a valid checksum.

Returns:

  • {:ok, edrpou} if validation successful
  • {:error, :length_too_short} if shorter than required length
  • {:error, :length_too_long} if longer than required length
  • {:error, :invalid_checksum} if checksum is invalid

## Examples

    iex> UkraineTaxidEx.Edrpou.Validator.validate("00032112")
    {:ok, "00032112"}

    iex> UkraineTaxidEx.Edrpou.Validator.validate("0003211")
    {:error, :length_too_short}

    iex> UkraineTaxidEx.Edrpou.Validator.validate("000321122")
    {:error, :length_too_long}

    iex> UkraineTaxidEx.Edrpou.Validator.validate("00032113")
    {:error, :invalid_checksum}

Summary

Functions

Check whether a given EDRPOU has correct checksum

Check whether a given EDRPOU violates the required length

Check whether a given EDRPOU too long

Check whether a given EDRPOU too short

Functions

violates_checksum?(code)

@spec violates_checksum?(code :: String.t()) :: boolean()

Check whether a given EDRPOU has correct checksum

violates_length?(code)

@spec violates_length?(code :: String.t()) :: boolean()

Check whether a given EDRPOU violates the required length

violates_length_too_long?(code)

@spec violates_length_too_long?(code :: String.t()) :: boolean()

Check whether a given EDRPOU too long

violates_length_too_short?(code)

@spec violates_length_too_short?(code :: String.t()) :: boolean()

Check whether a given EDRPOU too short