View Source QRNBU.Validators.InvoiceValidity (NBU payment QR v0.3.3)

Validator for invoice validity datetime.

Validates expiration timestamp for invoices in V003 format.

Summary

Functions

Validates invoice validity datetime.

Functions

@spec validate(NaiveDateTime.t()) :: {:ok, NaiveDateTime.t()} | {:error, String.t()}

Validates invoice validity datetime.

Rules

  • Must be a NaiveDateTime
  • Must be in the future (after current time)

Examples

iex> future = NaiveDateTime.add(NaiveDateTime.utc_now(), 86400, :second)
iex> QRNBU.Validators.InvoiceValidity.validate(future)
{:ok, future}

iex> past = ~N[2020-01-01 00:00:00]
iex> QRNBU.Validators.InvoiceValidity.validate(past)
{:error, "Invoice validity must be in the future"}

iex> QRNBU.Validators.InvoiceValidity.validate("2025-12-31")
{:error, "Invoice validity must be a NaiveDateTime"}