   """
   @spec to_struct(map()) :: t
   def to_struct(params) when is_map(params) do
+    params = for {key, val} <- params, into: %{} do
+      key = cond do
+        is_atom(key) -> Atom.to_string(key)
+        true -> key
+      end
+
+      {key, val}
+    end
+
     address = %Address{
       name: params["name"],
       phone: params["phone"],

      address_line_2: params["address_line_2"],
      city: params["city"],
      state: Util.full_state_to_abbreviation(params["state"]),
      zip: params["zip"]
    }

    # Check for a passed array.


  @type t :: %__MODULE__{}

  @enforce_keys [:name, :phone, :address, :address_line_2, :city, :state, :zip, :country]
  defstruct [:name, :phone, :address, :address_line_2, :city, :state, :zip, :country]

  alias __MODULE__, as: Address
  alias Shippex.Util
