Bali (bali v0.5.0)

Módulo encargado de realizar las validaciones de identificadores personales y fiscales de México, Colombia, España, Portugal, Italia y Brasil

Link to this section Summary

Functions

Obtiene la lista de tipos de documentos soportados

Valida el identificador personal o fiscal segun el país(mx,co,es,pt,it,br) y tipo

Revisa si el tipo documento fiscal recibido se encuentra en la lista de documentos válidos y verifica que su valor sea correcto

Revisa si el tipo documento personal recibido se encuentra en la lista de documentos válidos y verifica que su valor sea correcto

Link to this section Functions

Link to this function

get_document_types()

Obtiene la lista de tipos de documentos soportados

Link to this function

validate(country, document_type, value)

Specs

validate(atom(), atom(), String.t()) :: {:ok, String.t()} | {:error, String.t()}

Valida el identificador personal o fiscal segun el país(mx,co,es,pt,it,br) y tipo

Ejemplos:


  # México
  iex> Bali.validate(:mx, :curp, "ROCE000131HNLDNDA0")
  {:ok, "ROCE000131HNLDNDA0"}

  iex> Bali.validate(:mx, :curp, "BADD110313HCMLNS0Q")
  {:error, "CURP inválido"}

  iex> Bali.validate(:mx, :rfc, "AAFI7906296J1")
  {:ok, "AAFI7906296J1"}

  iex> Bali.validate(:mx, :rfc, "OIBD890101MQB")
  {:error, "RFC inválido"}

  # Colombia
  iex> Bali.validate(:co, :cc, "123456789")
  {:ok, "123456789"}

  iex> Bali.validate(:co, :cc, "12345678912")
  {:error, "CC inválida"}

  iex> Bali.validate(:co, :ce, "123456")
  {:ok, "123456"}

  iex> Bali.validate(:co, :ce, "12345678")
  {:error, "CE inválida"}

  iex> Bali.validate(:co, :nit, "123456-1")
  {:ok, "123456-1"}

  iex> Bali.validate(:co, :nit, "123456-12")
  {:error, "NIT inválido"}

  # España
  iex> Bali.validate(:es, :dni, "46324571H")
  {:ok, "46324571H"}

  iex> Bali.validate(:es, :dni, "46324571I")
  {:error, "DNI inválido"}

  iex> Bali.validate(:es, :nie, "Z1234567R")
  {:ok, "Z1234567R"}

  iex> Bali.validate(:es, :nie, "Z1234567I")
  {:error, "NIE inválido"}

  # Italia
  iex> Bali.validate(:it, :cf, "VRDGPP13R10B293P")
  {:ok, "VRDGPP13R10B293P"}

  iex> Bali.validate(:it, :cf, "VRDGPP13R10B29BP")
  {:error, "CF inválido"}

  # Portugal
  iex> Bali.validate(:pt, :nif, "123456789")
  {:ok, "123456789"}

  iex> Bali.validate(:pt, :nif, "12345678")
  {:error, "NIF inválido"}

  iex> Bali.validate(:pt, :cc, "12345678")
  {:ok, "12345678"}

  iex> Bali.validate(:pt, :cc, "1234567")
  {:error, "CC inválido"}

  # Brasil
  iex> Bali.validate(:br, :cpf, "000.000.000-00")
  {:ok, "000.000.000-00"}

  iex> Bali.validate(:br, :cpf, "000.000.000-000")
  {:error, "CPF inválido"}

  iex> Bali.validate(:br, :cnpj, "00.000.000/0000-00")
  {:ok, "00.000.000/0000-00"}

  iex> Bali.validate(:br, :cnpj, "00.000.000/0000-000")
  {:error, "CNPJ inválido"}
Link to this function

validate_fiscal_document(country, document_type, value)

Specs

validate_fiscal_document(atom(), atom(), String.t()) ::
  {:ok, String.t()} | {:error, String.t()}

Revisa si el tipo documento fiscal recibido se encuentra en la lista de documentos válidos y verifica que su valor sea correcto

Link to this function

validate_personal_document(country, document_type, value)

Specs

validate_personal_document(atom(), atom(), String.t()) ::
  {:ok, String.t()} | {:error, String.t()}

Revisa si el tipo documento personal recibido se encuentra en la lista de documentos válidos y verifica que su valor sea correcto