Charging through fabman



I’m currently testing fabman as a possible solution to maintain usage statistics, charging students for the use of the machines en keeping track of access levels for the 3 labs we have in our Art University in Flanders.
I was wondering whether there might be room for advanced charging options like materials that could be added to a users account, amount of filament used by a 3d printer,…
Will stripe remain the only way to create a payment platform or will there be other options in the (near) future? Or is there a way to do this through an api?
Something else I was wondering about: how does a usage report look like? How to create one and what data can be shown in such a report?
We currently use mifare + cards for our staff and students, will there be an option to batch import all these users from an Active Directory export?
Is there a way to create a payment system where a member has an amount of money on his/her student card?




Hi @lucalab and welcome!

That’s a lot of questions. I’ll do my best…

There are a few options:

  1. You can manually charge members for pretty much anything by going to their detail page, selecting “Charges & invoices” and clicking on “Add a charge or credit”.

  2. Some labs use an automated, two-step approach for charging for filament:

    1. Extract information from your 3D printer about the amount of material used and store it in the metadata field of the corresponding activity via our API.
    2. Use a webhook to get notified when an activity is created or updated and automatically generate a charge for the member via our API based on the information in the metadata field.

This approach allows you to automatically charge people however you like, but it requires some programming. @roland has documented how Happylab does it for their Formlabs printers and I think they have something similar for their Stratasys printers. @walterw tried a similar approach for their Ultimaker printers and @mzuzelka experimented with getting that information from Prusa printers, if I remember correctly. Maybe these guys can tell you more.

There will be other options in the (near) future. In particular, we plan to allow members to pay directly via the member portal using common payment methods rather soon.

Fabman keeps all booking and usage data for as long as you’ve chosen in your account settings. At the moment yon can browse this data in Fabman

  • as part of the overview visualization and
  • as lists you can filter.

If you want to analyze the data in more detail, you can export it by member, machine, date range, etc. as CSV file and visualize it using your favorite spreadsheet program.

Not via the application, but if you know a little bit of programming, you can use our open Fabman API to create members and assign them key cards in batch. Let me know if you need more information about that.

We don’t store any data on the cards, but you can use Fabman as a prepaid system by enabling “Require upfront payment” for these student members. Their available amount is not stored on their card, instead it’s linked to their member account. See our related help article for details.

I hope that helps.



@raphael thx for mentioning :wink: . We just started testing of our implementation in our FabLab. Here is quick demo of our implementation of Fabman to Prusa printer. It is combination of our custom Fabman device + RFID reader and custom Prusa FW on the printer.

Basically, we take information of filament used from one print from FW of the printer + name of the member which is printing and we send this information to FM DB. After that, we can see in the backend of Fabman how much filament member used and what was the name of printed file. Here is example of metadata which we store for each print:

[ { “File name”: “lcd-support-B_offset_0.2mm_PLA_MK3.gcode”, “Filament used”: 3.75 } ]

This information is after that taken by our eshop & users can see it in their customer page with other information and they can put it in the shopping basket and pay for it.



Thank you for your reply @raphael.
I will start expermimenting a bit with the API and webhooks.
Thank you @mzuzelka for the video regarding the filament count with Prusa printers. I’ll have a look at this on how to do it based on the output generated by Simplify 3d and the way I can pull information out our tripodmaker.



Our solution is based on information from firware of the printer. I strongly believe, that this can be use with other printer fw such as Marlin or Repetier. We are basically stealing information which printer storing for total amount of filament used when printer was printing. I think that this information is, at least as an option, in all firmware’s for printer. I had no luck to find out what FW is your Tripodmaker using, but if you will let me know, I can look if our system can be implemented.



The Tripodmaker is using repetier as firmware. It would be great if your solution might be adapted for the repetier firmware. Thank you for the support, Miroslav!


So I was curious, downloaded last Repetier FW and found this function:

which I think do pretty same like function in Prusa FW. If you are interested and know bit of C (I would say I don´t as I´m still novice in this) you can search for “filamentPrinted” keyword and will guide through the functions, which store information´s about filament use in printer.