This year, at the 2016 annual FileMaker Developer’s conference (DevCon), I presented a session titled E-Payments in FileMaker apps. One of the most popular portions of my session was demonstrating how easy it is to integrate FileMaker with the Stripe application program interface (API) to accept credit card payments in your FileMaker custom apps.

(Bonus: FileMaker has provided a free recording of this entire session)

How does this work?

FileMaker has a number of ways to work with web-based APIs. For e-payments, I’ve found that FileMaker’s Custom Web Publishing (CWP) makes it easy to communicate between FileMaker and the rest of the web. Using CWP, we create a PHP page that communicates with both FileMaker and Stripe.

To start, information is extracted from FileMaker to create details of the payment; those details are then sent to Stripe. The page then opens up a payment pop-up, which has a secure connection to Stripe to make a charge. Once the payment information is received and placed into a token, the user is redirected to a second page where the token is charged. The information is sent back to FileMaker, and the user can see the result of the charge.

Why use this method for payments?stripe-logo

One of the best reasons to use Stripe is that it removes the risk of storing any credit card information either in your FileMaker database or on the CWP site. This method is compatible in FileMaker Pro, Go and WebDirect. You can even send a link to people that need to pay, without the need for FileMaker at all.

Additionally, Stripe is much easier to set up and receive approval than a traditional merchant processor. However, if you do need a terminal (point of sale or payments over the phone), this may not meet all of your needs.

How do I integrate this?

  • Sign up for a Stripe account and obtain your API keys
  • Host the FileMakerEPayments folder content on your website
  • Add your API keys to the stripe.php file
  • Update the CWP connection information to your database in the index.php and charge.php files. Make sure that you use a user that has CWP privileges enabled!
  • Copy the invoices and StripePayment layouts from the AcmeCorp sample file to your file
  • Check out the “Pay Invoice” script on how to send a user to the payment page

The files

Ready to start your own integration, and take payments today? Download my demo files for everything you need to get started in this integration.

Download the sample file »


  1. As a followup to this, make sure to download the latest copy of the stripe API php files when you host your code and replace the ones in the folder!

    The latest releases can be downloaded from here:

    Posted by Mike Beargie on June 13, 2017. Reply

  2. If we do need a terminal payment, would you sugget Square. There is a terminal possible with Paypal but it is not offered in Canada to my knowledge.
    My second question is: can swipe access 5 different bank accounts to transfer money. These are 5 various departments in the same non profit organization. Money must be transfered some day or the other from the payment gateway to the bank account of these organization. Can this be automated, like every month?

    Posted by Gilles Provencher on July 13, 2019. Reply

    • Corporate Network Services

      Hi Gilles,

      Stripe only supports one payout account per currency, listed in their documentation here:

      I do not personally recommend paypal for anything. I am not sure about what product offerings they have in Canada.

      Square does offer an SDK/API in order to integrate with their payment system:
      However that is beyond the scope of the demo files provided in this post.

      If you get stuck on integration for square and wanted us to help you out, please contact us at

      Posted by Mike Beargie on July 17, 2019. Reply

Leave a comment

Your email address will not be published. Required fields are marked *