lib/requests/payments/void_payment.ex

defmodule Requests.VoidPayment do
    @moduledoc false
  @derive Jason.Encoder

  @type t :: %__MODULE__{
          reference: String.t(),
          metadata: map()
        }

  defstruct [:reference, :metadata]

  def build(params) when is_map(params) do
    %__MODULE__{
      reference: params[:reference],
      metadata: params[:metadata]
    }
  end

  def build(_), do: nil
end