<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="63188" data-post-id="63188">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kip" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kip/120/1440_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kip
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>ex_cldr Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I hear you although I’m no fintech guru.  Its why in ex_money I never round implicitly, only ever explicitly.</p>
<p>I am pretty confident that the Decimal lib works correctly to arbitrary precision although of course when division is involved there can always be issues.  Arguably support for Decimal and Rational numbers would be useful.</p>
<p>if you defined something like:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">defprotocol Money.Access do
  @doc Access money components
  def currency(money)
  def amount(money)
end

defimpl Money.Access, for: Any do
  def currency(money), do: Map.get(money, :currency)
  def amount(money), do: Map.get(money, :amount)
end
</code></pre>
<p>that would give a reasonable default for many libs and easy implementation for other lib writers.  And then as a byproduct we could end of with a community endorsed protocol that could, if required, be extended.</p>
<p>I thought a few times that it would be handy to have a central registration of protocols that could be used to aid integrations like this but thats also hard to manage…</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="63188" data-batch-url="/posts/batch_likers">
                        5
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/gringotts-a-complete-payment-library-for-elixir-and-phoenix-framework/11054/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-63188" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="63188"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #21"></div>
  </section>
</div>
    <div class="postbit" id="63221" data-post-id="63221">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="pkrawat1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/pkrawat1/120/7503_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  pkrawat1
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="kip" data-post="22" data-topic="11054">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kip/48/1440_2.png" class="avatar"> kip:</div>
<blockquote>
<p>if you defined something like:</p>
<p>defprotocol Money.Access do<br>
<a class="mention" href="/u/doc" rel="nofollow">@doc</a> Access money components<br>
def currency(money)<br>
def amount(money)<br>
end</p>
<p>defimpl Money.Access, for: Any do<br>
def currency(money), do: Map.get(money, :currency)<br>
def amount(money), do: Map.get(money, :amount)<br>
end</p>
<p>that would give a reasonable default for many libs and easy implementation for other lib writers.  And then as a byproduct we could end of with a community endorsed protocol that could, if required, be extended.</p>
</blockquote>
</aside>
<p>Yeah, seems like useful, will have to think/plan somewhat like this. Thanks</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="63221" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/gringotts-a-complete-payment-library-for-elixir-and-phoenix-framework/11054/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-63221" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="63221"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #22"></div>
  </section>
</div>
    <div class="postbit" id="63359" data-post-id="63359">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ashish173" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ashish173
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Following your request we have created this table of gateway feature matrix <a href="https://github.com/aviabird/gringotts/wiki/Gateway-feature-matrix" class="inline-onebox" rel="noopener nofollow ugc">Home · aviabird/gringotts Wiki · GitHub</a></p>
<p>It lists all the gateways and the methods they support. Hope that helps!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="63359" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/gringotts-a-complete-payment-library-for-elixir-and-phoenix-framework/11054/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-63359" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="63359"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #23"></div>
  </section>
</div>
    <div class="postbit" id="63452" data-post-id="63452">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="oyeb" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/oyeb/120/7504_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  oyeb
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hey everyone! I’m on the Gringotts core team too.<br>
Thanks for your valuable suggestions on how to handle Money <a class="mention" href="/u/kip" rel="nofollow">@kip</a> <a class="mention" href="/u/astonj" rel="nofollow">@AstonJ</a> <a class="mention" href="/u/michalmuskala" rel="nofollow">@michalmuskala</a> . We’ve made an <a href="https://github.com/aviabird/gringotts/issues/62" rel="noopener nofollow ugc">issue #62</a> on this and would like to move the discussion over there.</p>
<p>Eager to hear your thoughts on the proposed plan!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="63452" data-batch-url="/posts/batch_likers">
                        5
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/gringotts-a-complete-payment-library-for-elixir-and-phoenix-framework/11054/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-63452" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="63452"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #24"></div>
  </section>
</div>
    <div class="postbit" id="63505" data-post-id="63505">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="jknipp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jknipp/120/7237_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  jknipp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/oyeb" rel="nofollow">@oyeb</a> <a class="mention" href="/u/pkrawat1" rel="nofollow">@pkrawat1</a> Spreedly (co-maintainer of active merchant) team member here - while we don’t use Elixir for payments at this time, we do use Elixir throughout our stack - best wishes in your endeavor in creating an Elixir payments library. Looking forward to seeing your progress.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="63505" data-batch-url="/posts/batch_likers">
                        5
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/gringotts-a-complete-payment-library-for-elixir-and-phoenix-framework/11054/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-63505" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="63505"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #25"></div>
  </section>
</div>
    <div class="postbit" id="64615" data-post-id="64615">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="pkrawat1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/pkrawat1/120/7503_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  pkrawat1
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi all</p>
<p>We are working on an example app for gringotts deployed on Heroku.<br>
Have a look at here <a href="https://gringottspay.herokuapp.com" rel="noopener nofollow ugc">https://gringottspay.herokuapp.com</a></p>
<p>Thanks</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="64615" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/gringotts-a-complete-payment-library-for-elixir-and-phoenix-framework/11054/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-64615" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="64615"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #26"></div>
  </section>
</div>
    <div class="postbit" id="64817" data-post-id="64817">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kip" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kip/120/1440_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kip
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>ex_cldr Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>With some encouragement from <a class="mention" href="/u/schultzer" rel="nofollow">@Schultzer</a>, <a href="https://hex.pm/packages/ex_money" rel="nofollow">ex_money version 1.1.3</a> now makes it easier to work with money in integer form to help easy integration with API’s that use that form like Stripe.</p>
<pre><code>iex&gt; m = Money.new(:USD, 200.012356)
#Money&lt;:USD, 200.012356&gt;

# Return the money amount as {currency, integer, exponent, remainder}
iex&gt; Money.to_integer_exp(m)
{:USD, 20001, -2, #Money&lt;:USD, 0.002356&gt;}

# Convert from integer to money.  ex_money will look up
# how many implied decimal places are intended based
# upon the currency definition in CLDR
iex&gt; Money.from_integer(20000, :USD)
#Money&lt;:USD, 200.00&gt;
iex&gt; Money.from_integer(20000, :JPY)
#Money&lt;:JPY, 20000&gt;
</code></pre>
<p>Hopefully this makes it easier to work with other libraries that use the integer format even though the risk of miscalculating the exponent for the appropriate currency is still a risk with this representation.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="64817" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/gringotts-a-complete-payment-library-for-elixir-and-phoenix-framework/11054/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-64817" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="64817"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #27"></div>
  </section>
</div>
    <div class="postbit" id="64889" data-post-id="64889">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="OvermindDL1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/OvermindDL1/120/2677_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  OvermindDL1
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group quote-modified" data-username="kip" data-post="28" data-topic="11054">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kip/48/1440_2.png" class="avatar"> kip:</div>
<blockquote>
<pre data-code-wrap="elixir"><code class="lang-elixir">iex&amp;gt; m = Money.new(:USD, 200.012356)
#Money&amp;lt;:USD, 200.012356&amp;gt;
</code></pre>
</blockquote>
</aside>
<p>Uhh, is this safe?!  You should never ever <em>ever</em> <strong>ever</strong> use floats for money, never ever <em>ever</em> <strong>EVER</strong>…  o.O<br>
Should not accept it as floating point, should not give it as floating point, should not display it as floating point, etc…  Fixed point <em>only</em>.  And never ever <em>ever</em> by using floating point calculations internally either, <em>ever</em>.<br>
(See my many prior posts about floating point as to why.)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="64889" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/gringotts-a-complete-payment-library-for-elixir-and-phoenix-framework/11054/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-64889" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="64889"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #28"></div>
  </section>
</div>
    <div class="postbit" id="64894" data-post-id="64894">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="James-Byrne" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/James-Byrne/120/16061_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  James-Byrne
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>They have an open issue for moving away from using floats <a href="https://github.com/aviabird/gringotts/issues/62" rel="noopener nofollow ugc">here</a> so they’re working on it.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="64894" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/gringotts-a-complete-payment-library-for-elixir-and-phoenix-framework/11054/30">Post #29</a>
	                </div>
	            </div>
              <div id="likers-container-64894" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="64894"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #29"></div>
  </section>
</div>
    <div class="postbit" id="64899" data-post-id="64899">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="pkrawat1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/pkrawat1/120/7503_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  pkrawat1
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>We have already started working on Money Protocols <a href="https://github.com/aviabird/gringotts/pull/71" rel="noopener nofollow ugc">here</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="64899" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/gringotts-a-complete-payment-library-for-elixir-and-phoenix-framework/11054/31">Post #30</a>
	                </div>
	            </div>
              <div id="likers-container-64899" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="64899"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #30"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/11054/load_more?page=4">Load more posts (21 remaining)</a>
</div></template></turbo-stream>