<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="./">
<head>
  <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Payment Processors &mdash; ASM 49u documentation</title>
      <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
      <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=86f27845" />

  
  
        <script src="_static/jquery.js?v=8dae8fb0"></script>
        <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
        <script src="_static/documentation_options.js?v=1fe27ac2"></script>
        <script src="_static/doctools.js?v=888ff710"></script>
        <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
    <script src="_static/js/theme.js"></script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="Rota" href="rota.html" />
    <link rel="prev" title="Online Forms" href="onlineform.html" /> 
</head>

<body class="wy-body-for-nav"> 
  <div class="wy-grid-for-nav">
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >

          
          
          <a href="index.html" class="icon icon-home">
            ASM
          </a>
              <div class="version">
                49u
              </div>
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="foreword.html">Foreword</a></li>
<li class="toctree-l1"><a class="reference internal" href="gettingstarted.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="searching.html">Search</a></li>
<li class="toctree-l1"><a class="reference internal" href="animals.html">Animals</a></li>
<li class="toctree-l1"><a class="reference internal" href="people.html">People</a></li>
<li class="toctree-l1"><a class="reference internal" href="movements.html">Movements</a></li>
<li class="toctree-l1"><a class="reference internal" href="documents.html">Documents</a></li>
<li class="toctree-l1"><a class="reference internal" href="animalcontrol.html">Animal Control</a></li>
<li class="toctree-l1"><a class="reference internal" href="boarding.html">Boarding</a></li>
<li class="toctree-l1"><a class="reference internal" href="clinic.html">Clinic</a></li>
<li class="toctree-l1"><a class="reference internal" href="events.html">Events</a></li>
<li class="toctree-l1"><a class="reference internal" href="lostandfound.html">Lost and Found</a></li>
<li class="toctree-l1"><a class="reference internal" href="waitinglist.html">Waiting List</a></li>
<li class="toctree-l1"><a class="reference internal" href="generaldiary.html">General Diary</a></li>
<li class="toctree-l1"><a class="reference internal" href="accounts.html">Accounts</a></li>
<li class="toctree-l1"><a class="reference internal" href="stockcontrol.html">Stock Control</a></li>
<li class="toctree-l1"><a class="reference internal" href="reports.html">Reports</a></li>
<li class="toctree-l1"><a class="reference internal" href="onlineform.html">Online Forms</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Payment Processors</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#requesting-a-payment">Requesting a payment</a></li>
<li class="toctree-l2"><a class="reference internal" href="#requesting-fulfilment-of-multiple-payments">Requesting fulfilment of multiple payments</a></li>
<li class="toctree-l2"><a class="reference internal" href="#adoption-checkout">Adoption checkout</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#initiating">Initiating</a></li>
<li class="toctree-l3"><a class="reference internal" href="#checkout-link">Checkout Link</a></li>
<li class="toctree-l3"><a class="reference internal" href="#incomplete-payments">Incomplete payments</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#license-checkout">License checkout</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="rota.html">Rota</a></li>
<li class="toctree-l1"><a class="reference internal" href="mobile.html">Mobile Interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="service.html">Service API</a></li>
<li class="toctree-l1"><a class="reference internal" href="publishing.html">Publishing</a></li>
<li class="toctree-l1"><a class="reference internal" href="mailmerge.html">Mail Merge Sources</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="options.html">Options</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">Appendix: Frequently Asked Questions</a></li>
<li class="toctree-l1"><a class="reference internal" href="csvimportfields.html">Appendix: CSV file import fields</a></li>
<li class="toctree-l1"><a class="reference internal" href="databasetables.html">Appendix: Database Tables/Columns</a></li>
<li class="toctree-l1"><a class="reference internal" href="relationships.html">Appendix: Entity Relationship Diagrams</a></li>
<li class="toctree-l1"><a class="reference internal" href="website.html">Appendix: Integrating with Your Website</a></li>
<li class="toctree-l1"><a class="reference internal" href="onlineformfields.html">Appendix: Online Form import fields</a></li>
<li class="toctree-l1"><a class="reference internal" href="wordkeys.html">Appendix: Wordkeys</a></li>
</ul>

        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="index.html">ASM</a>
      </nav>

      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
      <li class="breadcrumb-item active">Payment Processors</li>
      <li class="wy-breadcrumbs-aside">
            <a href="_sources/paymentprocessors.rst.txt" rel="nofollow"> View page source</a>
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
             
  <section id="payment-processors">
<h1>Payment Processors<a class="headerlink" href="#payment-processors" title="Link to this heading">¶</a></h1>
<p>ASM can request due payments from customers via a payment processor. Currently,
support is available for PayPal, Stripe and Cardcom (Israel only).</p>
<p>For details on configuring payment processors from the options screen at
<span class="menuselection">Settings ‣ Options ‣ Payment Processors</span>, see
<a class="reference internal" href="options.html#paymentprocessors"><span class="std std-ref">Payment Processors</span></a></p>
<section id="requesting-a-payment">
<h2>Requesting a payment<a class="headerlink" href="#requesting-a-payment" title="Link to this heading">¶</a></h2>
<p>To request a payment from a customer, first create that payment in either the
payment tab for a person or animal, or <span class="menuselection">Financial ‣ Payment Book</span></p>
<p>Your payment should have a due date, but no received date.</p>
<img alt="_images/processor_1_duepay.png" src="_images/processor_1_duepay.png" />
<p>Next, request payment from the customer by selecting your payment from the list
and clicking “Request Payment” followed by the processor you would like to use
to receive the payment.</p>
<img alt="_images/processor_2_paypal.png" src="_images/processor_2_paypal.png" />
<p>The screen will pop up an email dialog, allowing you to complete details of the
message to be sent requesting the payment. Use document templates to store
commonly used emails and populate the text by choosing them from the Template
dropdown at the bottom of the dialog.</p>
<p>The payment request link will be appended to the bottom of your message after
you hit Send.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The subject line of your request email will be used as the description of the item presented to the customer when they pay.</p>
</div>
<img alt="_images/processor_3_email.png" src="_images/processor_3_email.png" />
<p>The resulting email will end up in the customer’s inbox with a clickable
link to pay with the payment processor.</p>
<p>Note the payment references that ASM uses are in the form of
PERSON-RECEIPTNUMBER to prevent one person receiving a payment request from
changing or guessing another receipt number to try and access another
customer’s payment.</p>
<p>The subject line of your email will be used as the payment description at the
checkout. ASM will default the comments from the selected payment and if they
are not present, will suggest the payment type.</p>
<img alt="_images/processor_4_emailrec.png" src="_images/processor_4_emailrec.png" />
<p>Once payment has been completed, the system will automatically update the
received date on the payment record. If you have the option on to create
matching accounting transactions for received payments, a transaction
will be written at this point. If you have configured an expense account
for transaction fees, a transaction will be written to deduct the fee and
send it to the expense account.</p>
<img alt="_images/processor_5_recpay.png" src="_images/processor_5_recpay.png" />
</section>
<section id="requesting-fulfilment-of-multiple-payments">
<h2>Requesting fulfilment of multiple payments<a class="headerlink" href="#requesting-fulfilment-of-multiple-payments" title="Link to this heading">¶</a></h2>
<p>Payment requests are linked to receipt numbers rather than individual payments.</p>
<p>While most payments will have their own receipt numbers, it is also possible to
create multiple due payments on the same receipt number by using the
<span class="menuselection">Financial ‣ Receive a payment</span> or <span class="menuselection">Move ‣
Adopt an animal</span> screens.</p>
<p>For these screens to allow you to set the due date, you need to have set the
option <span class="menuselection">Settings ‣ Options ‣ Accounts ‣ When receiving
multiple payments, allow the due and received dates to be set</span></p>
<p>When choosing a due payment from the Payment Book or a payment tab, the other
payments with the same receipt number will also be included and added to the
payment total requested.</p>
</section>
<section id="adoption-checkout">
<h2>Adoption checkout<a class="headerlink" href="#adoption-checkout" title="Link to this heading">¶</a></h2>
<p>The adoption checkout feature allows an adopter to complete the adoption process
on their mobile device. It allows them to view and sign their adoption paperwork,
make an optional donation and then sends them off to your chosen payment processor
to pay the adoption fee and donation.</p>
<p>To enable the feature, it must first be configured under
<span class="menuselection">Settings ‣ Options ‣ Checkout</span></p>
<img alt="_images/adoption_checkout_config.png" src="_images/adoption_checkout_config.png" />
<p>The configuration options allow you to choose the payment processor you want to
handle the payments, the document template you want to use to create the adoption
paperwork, the payment method to use when creating payments and the payment types
to use when recording the adoption fee and donation.</p>
<section id="initiating">
<h3>Initiating<a class="headerlink" href="#initiating" title="Link to this heading">¶</a></h3>
<img alt="_images/adoption_checkout_start.png" src="_images/adoption_checkout_start.png" />
<p>Checkout is initiated from the movement tab of the person or animal (or the
reservation or “recently adopted” books). It can be done from either a
reservation or adoption movement, although if you do use a reservation you will
need to manually convert it to an adoption afterwards.</p>
<p>Select the movement and click the “Adopter checkout” button on the toolbar.</p>
<p>If you have not configured the feature, this button will not appear.</p>
<img alt="_images/adoption_checkout_sendemail.png" src="_images/adoption_checkout_sendemail.png" />
<p>The button will prompt you to send an email to the adopter. Relevant information will
be pre-filled and as with other email dialogs, you can use a document template or
write ad-hoc content.</p>
<p>A link will be added below your email message that links to the checkout system.</p>
</section>
<section id="checkout-link">
<h3>Checkout Link<a class="headerlink" href="#checkout-link" title="Link to this heading">¶</a></h3>
<p>The adopter follows the link in the email on their mobile device (tablets and desktops
can also be used, it is not limited in any way to just mobiles).</p>
<p>At this point the system creates the adoption paperwork on the animal and person
record ready for the adopter to view and sign on their device.</p>
<img alt="_images/adoption_checkout_1.png" src="_images/adoption_checkout_1.png" />
<p>The checkout will remind the adopter which animal they are adopting and the adoption
fee. This value is taken from the adoption fee field on the animal’s record.</p>
<img alt="_images/adoption_checkout_2.png" src="_images/adoption_checkout_2.png" />
<p>They will then be prompted to view and sign their adoption paperwork.</p>
<p>The adopter can also choose at this point to have a PDF of their signed
adoption paperwork emailed to them.</p>
<img alt="_images/adoption_checkout_3.png" src="_images/adoption_checkout_3.png" />
<p>The adopter will be asked if they would like to make a donation. The message
can be configured, as can all the suggested tiers of donation.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>If you remove the $0 donation tier from the list, the adopter will only be able to continue if they make a donation as they must choose one option.</p>
</div>
<p>When you are configuring the donation tiers, the system will show everything to
the left of the = sign in bold at the top of the button. This means that you
should include your currency symbol for readability as shown in the example
configuration above. You can also optionally include the decimal portion if you
feel it looks better - eg: $25 vs $25.00</p>
<p>Once the user has chosen their donation tier, the system will create due payment
records for the adoption fee and donation against the animal and person. It will
add their signature to the paperwork at this point and send an email containing
a PDF of the paperwork to the adopter if they requested it.</p>
<img alt="_images/adoption_checkout_4.png" src="_images/adoption_checkout_4.png" />
<p>Finally, the adopter will be redirected to the payment processor you have
configured to take their payment online.</p>
<p>Depending on what apps are available on their device (eg: Google or Apple Pay)
and which payment processor you are using, this can be an extremely trivial
process that does not necessarily involve hand entering card numbers.</p>
<p>When payment is complete, the received date will be set on the two payment
records for the fee and donation and any accounting transactions created. The
adopter will be redirected to the success URL you configured under the payment
processor options.</p>
</section>
<section id="incomplete-payments">
<h3>Incomplete payments<a class="headerlink" href="#incomplete-payments" title="Link to this heading">¶</a></h3>
<p>If the adopter does not complete their payment at this point, the payment records
are left outstanding in the system.</p>
<p>If the adopter returns to the checkout by following the link again, or
navigating back from the payment processor, the paperwork will not be created
and signed again. The adopter can choose a new donation tier if they wish and
the system will update the due donation payment record to reflect the new value
that they’ve chosen. If they choose the 0 tier, the donation payment record
will be deleted.</p>
<p>No matter how many times the adopter returns to the checkout, once payment has
been made, the records will be updated.</p>
<p>The system will maintain the checkout state for 48 hours before removing it.
After this period, the adopter will receive an error and will not be able to
use their checkout link until a member of staff initiates the adoption checkout
process again from the movement tab/book.</p>
</section>
</section>
<section id="license-checkout">
<h2>License checkout<a class="headerlink" href="#license-checkout" title="Link to this heading">¶</a></h2>
<p>The license checkout feature allows members of the public to renew and pay for
their license online in a similar manner to the adoption checkout. Note that
the first license for any animal/person combination must be created manually
(or via an online form).</p>
<p>This is a much simpler workflow than the adoption checkout in that they are
shown a thumbnail (if available) for the animal they are renewing the license
for, along with some info on the animal and the renewal cost that they are
about to pay.</p>
<p>They can then confirm that they wish to renew and will be taken off to the
configured checkout payment processor to take the payment.</p>
<p>Once the payment is complete and received the system will do the following:</p>
<ul class="simple">
<li><p>Flag the existing license as renewed</p></li>
<li><p>Create a new license of the same type as the renewed license.</p></li>
<li><p>The issue date of the new license will be set to expiry date of the old license.</p></li>
<li><p>The expiry date will be set to the issue date + the reschedule period for the license type.</p></li>
<li><p>The fee will be set to the amount the person just paid (cost from the licence type)</p></li>
</ul>
<p>License reminder emails can be configured to be sent out a set number of days
prior to the expiry of a license under <span class="menuselection">Settings ‣ Options ‣
Reminder Emails</span>.</p>
<p>You can use the token/wordkey &lt;&lt;LicenceRenewLink&gt;&gt; or &lt;&lt;LicenceRenewSrc&gt;&gt; in
your email template to include a clickable link to take the person to the checkout
to pay and renew.</p>
</section>
</section>


           </div>
          </div>
          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
        <a href="onlineform.html" class="btn btn-neutral float-left" title="Online Forms" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
        <a href="rota.html" class="btn btn-neutral float-right" title="Rota" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>&#169; Copyright 2024, Sheltermanager, Ltd.</p>
  </div>

  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    provided by <a href="https://readthedocs.org">Read the Docs</a>.
   

</footer>
        </div>
      </div>
    </section>
  </div>
  <script>
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script> 

</body>
</html>