Bitcoin Forum

Economy => Service Announcements => Topic started by: mocacinno on February 21, 2018, 10:06:52 AM



Title: [ANN][FREE] crypto invoice creation and management service
Post by: mocacinno on February 21, 2018, 10:06:52 AM
One of my planned projects got finished a bit early, so i had a couple of days to spend on a free project i wanted to do for a long time: a tool to easily create and manage crypto invoices accepting several altcoins as valid payment options.

I made a public beta available just minutes ago:
https://www.mocacinno.com/invoice/ (https://www.mocacinno.com/invoice/login.php)
The admin interface is pretty 'raw', but it should be usable for now.

Skipping straight to the sales pitch: managed invoices will look like this:
https://www.mocacinno.com/invoice/viewquote.php?quoteid=49cefda9-8957-4d2c-841d-3949adcb681d (https://www.mocacinno.com/invoice/viewquote.php?quoteid=49cefda9-8957-4d2c-841d-3949adcb681d)
After the initial setup, generating this invoice took me about 60 seconds, and i now have an admin interface that shows this invoice (and all other invoices i sent out) as unpayed. Since this was a premium invoice, i have complete controll over the template (altough this template is pretty close to the default, free, one). I was also shown cryptographic proof i could share with my customer in order to make the invoice tamper-proof (if i would change the invoice, the cryptographic proof would no longer match)


This tool allows you te define several profiles, each profile contains a number of valid, predefined (alt)coins that can be used to pay invoices + a default address + a formula which will be used to calculate the amount that needs to be payed (this way, it's possible to encourage or discourage certain forms of crypto currency).
The tool grabs the current prices from either poloniex's api or from coinmarketcap's api, then uses your formula to convert your invoices price into all altcoins in your profile (you basically say, i want to receive 100 USD or 0.01 BTC or 1 LTC and my script looks up the conversion rates and converts your input amount into the correct amount for each altcoin in your profile). A generated invoice is static and cannot be changed afterwards, avoiding discussions with your clients. When generating an invoice, you also get cryptographic proof that you can share with your client, so there can be no discussion afterwards.

The tool is not a magical full-featured automation tool, it doesn't have a lot of intelligence... It's basically an easy administration and crypto asset conversion tool that has a relatively small learning curve and can simplify your crypto invoice administration and generation.



At this moment, the tools is in bèta phase, so it's possible errors might pop up... If there isn't sufficient momentum from the community, the development might even stall or stop, and the tool might dissapear in the end (if this ever happens, i'll probably give a grace period and give my users a backup of their data)

The tool itself will always be free, but i also included a form of premium credits. If you own premium credits, you can edit the template that will be used to show to your client AND an email will be sent to your mailbox when your client indicates he payed the invoice. For now, premium credits will not be sold, but if you want a premium trial, you can send me a PM and i'll give you a couple for free ;)

Planned improvements + bugs:
  • [FEATURE] a function to clone profiles
  • [BUG] improve error messages
  • [FEATURE] js filter function on dropdowns
  • [FEATURE] add commercials to the free template, and probably the signup page
  • [FEATURE] add a timestamp to the invoice overview indicating at which exact moment the client indicated the invoice was payed
  • [FEATURE] add QR codes for the deposit addresses and add those as an extra variable to the template
  • [BUG] rework the caching: update all coins when one of the coins expired
  • [FEATURE] if the last cached price for a coin > 1 day, show a red warning text when people create an invoice using this coin, indicating it probably dropped off the api
  • [BUG] add a possibility to remove coins when creating invoices
  • [BUG] look into the session checking function, it seems to be to restrictive, kicking people out prematurely from time to time
  • [FEATURE] add a free text to the coins you put in your profile, so you can (for example) indicate where you got a certain address from (for example: "got this address from my hw wallet")
  • [FEATURE] Add an "archive" function for old invoices
  • [FEATURE] Add a "sorting" mechanism on the invoicelist, and potentially the profiles
  • [FEATURE] When creating a new invoice, automatically fill the "valid from" timestamp with the time when the wizard was started



features that won't be added/bugs that won't be addressed:
  • when a coin in the cache expired, a function will be triggered that updates this coins price... This is why, sometimes, the systeem seems to hang when you create a new invoice. This works as designed and will not change
  • automatically adding coins => i want to have controll over the coins that are added to my system
  • adding xpubs instead of addresses and letting the script derive a new address for each quote => would be to hard to keep track of all altcoins, would open me up to a lot of support, is sensitive information i don't want to store for free
  • improving the admin interface gui => those who know me, know i don't care about gui's... Your client will see a nice, simple, clean invoice... And that's what counts ;)


disclaimer(s):
  • Sharing addresses with any online service, including mine, puts your privacy at risk. If my database ever gets hacked, the hacker will be able to connect all your addresses in all your profiles and connect this information to any other data you entered... If my server ever gets compromised, the hacker might even be able to connect this data to your ip, to your refering sites and to times/dates you usually works. In reality, the hacker cannot use this data to rob you, but the data can potentially be used to social engineer or blackmail (in case you did something illegal in the past).
  • I'm using cloudflare... The traffic between my tool and cloudflare, and between cloudflare and my server is encrypted, but cloudflare decrypts and re-encrypts all traffic, so cloudflare can (potentially) read everything you send to my tool (including username, password and addresses)
  • At the moment, the tool is free... But even if (in a far future) you pay for premium credits, i will not be healt responsible for any loss incured by using this tool. It's your own responsability to doublecheck anything this tool shows you. If something goes wrong in any way, it's up to you ;)


Title: Re: [ANN][FREE] crypto invoice creation and management service
Post by: mocacinno on February 21, 2018, 10:07:07 AM
Tutorial/Walktrough/Quick start (work in progress)

Step 1 (only needed once)
  • Surf to https://www.mocacinno.com/invoice/login.php (https://www.mocacinno.com/invoice/login.php) (1)
  • Click on Register New account
  • Enter your username (2) and password (twice) (3+4)
  • OPTIONALLY, you can enter your email, bitcoin address and an external page containing a list of all your addresses (as a verification purpose)
  • Click on Register your account (5)
https://www.mocacinno.com/invoice/tutorial/1.png


Step 2 (needed every time you log in)
IF the registration was succesfull, you'll be redirected back to the login page (there will be no confirmation). If you try to register, but are not redirected to the login page, you can assume something went wrong... The error messages still need some finetuning, but usually you'll see what was going wrong straight from the incomplete error message.
If you are redirected back to the login page, just fill in your username and password, and click "login"
https://www.mocacinno.com/invoice/tutorial/2.png


Step 3 (needed at least once => the very first time you log in AND in case you want to add extra profiles)
The first time you log in, click on "invoices" => "default profiles" (without at least one profile, you cannot generate a new invoice)
https://www.mocacinno.com/invoice/tutorial/3.png


Step 4 (needed every time you want to add a new profile, at least once at the very beginning)
enter the following information:
  • The name of your profile (1), this is for INTERNAL reference only, and will never be shown to your clients
  • Select wether or not this is the default profile (2), there is no check to find out if you have multiple default profiles, if you select multiple, the system will randomly take one of the default profiles as default profile... A default profile will be pre-selected when generating an invoice, however, all generated profiles can be used (non-default profiles just require one extra click)
  • The default ruleset for the invoice (3), i've added some standard default rules as a demo, they can be deleted or changed if you want to... Lines need to end by a linebreak (\r\n)
After filling in the form, click on "add profile" (4)
https://www.mocacinno.com/invoice/tutorial/4.png


Step 5 (needed once every time you want to add coins to your profile)
Just click the coincount number (indicated by the red arrow). The first time adding coins to a profile, the coincount will be 0
https://www.mocacinno.com/invoice/tutorial/5.png


Step 6 (needed everytime you want to add coins to your profile)
  • Pick any coin you want to accept from the dropdown list (1)
  • Add a fixed fee that will be added ON TOP of the conversion to the coin picked in step 5.1 (2). This fee can be usefull to cover miner's fees, deposit fees for the exchange when you're exchanging an altcoin to BTC, or just to discourage the use of this (alt)coin in case you prefer a different one
  • Add a procentual fee that will be added ON TOP of the conversion to the coin picked in step 5.1 (3). This fee can be usefull to promote or discourage a certain altcoin. Only integers are accepted (-99 <> 999)
  • Add a fluctuation penalty (0-999) that will be added ON TOP of the conversion to the coin picked in step 5.1 (4). If the price drops, the penalty's percent will be added to the total value. For example you added a 10% fluctuation penalty... When using this profile, you'd need to pay (for example) 100 Democoin, but Democoin's price has dropped by 10% over the last 24 hours, in this case 10% of the 10% decrease will be added as a penalty, and the final value will be 101 Democoin
  • Indicate how many numbers after the comma have to be shown (5)...
  • Enter the default address for this coin. When creating a new invoice, this address will automatically be proposed. It can manually be changed to any address you want tough! (6)
  • Click on Add coin
  • Repeat these steps for all the coins you want to add to your profile

https://www.mocacinno.com/invoice/tutorial/6.png


Step 7 (Just an example of step 6)
Here you see that I've added 3 coins to my first profile: i added Ethereum, and i added bitcoin twice (1 and 2). As you can see, i'm favoring getting my segwit address funded. There is a small penalty of 0.0001 BTC + 10% if somebody wants to fund my non-segwit address. There is also a penalty for using ETH, and i actually didn't want to add a penalty for using my segwit address (but i messed up, and added a 5% penalty... I fixed this problem, but didn't want to take new screenshots  ;D)
https://www.mocacinno.com/invoice/tutorial/7.png


Step 8 (needed every time you want to create a new invoice)
In the top menu, chose "invoices" => "new invoice"
https://www.mocacinno.com/invoice/tutorial/8.png


Step 9 (needed every time you want to create a new invoice)
Chose which profile (defined in step 4) has to be used for this invoice
https://www.mocacinno.com/invoice/tutorial/9.png


Step 10 (needed every time you want to create a new invoice)
Chose an INTERNAL name FOR YOUR OWN reference... Pick something usefull for yourself, something you can use to identify this invoice
https://www.mocacinno.com/invoice/tutorial/10.png


Step 11 (needed every time you want to create a new invoice)
IF you have premium credits left AND you want your client to receive a copy of the link to the invoice in his mailbox, enter his email right here... Always double check tough, emails sent from my server usually end up in the spamfilter (i'll fix this IF my service ever becomes a success)
https://www.mocacinno.com/invoice/tutorial/11.png


Step 12 (needed every time you want to create a new invoice)
Enter following info:
  • The date AND time from when the invoice is valid (1)
  • The date AND time until when the invoice is valid (2)
  • If you want to divert from the default rules entered in your profile, you can make changes here (3)
  • The reason why you're sending this invoice, will be printed on the invoice (for example, "payment for fixing your serverconfiguration" or "payment for quote #512245") (4)
https://www.mocacinno.com/invoice/tutorial/12.png


Step 13 (needed every time you want to create a new invoice)
Chose the basic value and coin for your invoice. Any coin other than bitcoin (and also USD) will be converted to bitcoin first, then it'll be converted to the coins you chose in your profile
https://www.mocacinno.com/invoice/tutorial/13.png


Step 14 (needed every time you want to create a new invoice)
In this screen, you'll be able to change the default addresses (1), the calculated values based on the formula you entered in step 6 (2), you can show the calculation of the value (3) and see when the coin's exchange rate was last refreshed (4).
It is also possible to add extra coins to your invoice... Please note that these extra coins are just "free text" coins, no conversion rates are known, no full name, no link to a block explorer,... Use at your own discretion
https://www.mocacinno.com/invoice/tutorial/14.png


Step 15 (needed every time you want to create a new invoice)
Just click on continue... The inputfield for this step was removed since it was no longer needed. In the future, i'll probably put a form to remove coins in this step
https://www.mocacinno.com/invoice/tutorial/15.png


Step 16 (needed every time you want to create a new invoice)
Review the overview shown in this step... Up untill this step, the data you entered isn't commited into the database, just upon this step, you can always re-start without any problems. Once you click on the continue button, the data will be entered into the database, which is immutable (at least, for my users)... Also, if you own premium credits, one premium credit will be distracted from your total as soon as you continue...
https://www.mocacinno.com/invoice/tutorial/16.png


Step 17 (needed every time you want to create a new invoice)
This screen will show you:
  • The quote id (1). This is the ONLY id you should ever share with your client
  • The link to the quote (2), review this page and send the link to the client ;)
  • (3) + (4) => cryptographic proof. If you safe the proofs + the hashes AND send the hashes to your client in EVERY communication about the invoice, there is no way your client can accuse you of tampering with the coins, the amounts, the rules, the reason... Since any tampering will change the hash
https://www.mocacinno.com/invoice/tutorial/17.png


Step 18 (needed every time you want to manage existing invoices)
You can see your invoices by clicking on "invoices" => "view invoices"
https://www.mocacinno.com/invoice/tutorial/18.png


Step 19 (overview you get when after step 18)
Some of the usefull information consists of a link to the invoice and an indication wether or not your client indicated he'd payed the invoice
https://www.mocacinno.com/invoice/tutorial/19.png


Step 20 (Client's view)
  • Accepted combinations of amount, coin and address (1)
  • A link to the blockchain explorer, showing the address which needs to be funded if this coin is used as a form of payment (2)
  • A dropdown that can be used to indicate which coin was used to pay (3)
  • A text field that can be used to enter the payment tx id (4)
https://www.mocacinno.com/invoice/tutorial/20.png


Step 21 (Client's view)
Demo of a payment coin + txid... The client can now click on "validate payment". In reality, the payment isn't actually "validated", but the cointype, txid AND timestamp are stored into my database
https://www.mocacinno.com/invoice/tutorial/21.png


Step 22 (Client's view)
This is what the client sees after validating his payment
https://www.mocacinno.com/invoice/tutorial/22.png


Step 23 (admin view, reviewing invoices)
Go to "invoice" => "view invoices"
https://www.mocacinno.com/invoice/tutorial/23.png


Step 23 (admin view, reviewing invoices)
Now you'll see wether or not the invoice was payed, using which coin, which address was funded, everything linked to a block explorer (if available for this type of coin)
https://www.mocacinno.com/invoice/tutorial/24.png



Title: Re: [ANN][FREE] crypto invoice creation and management service
Post by: mocacinno on February 21, 2018, 11:04:02 AM
[reserved for tutorial overflow, might be deleted in a couple of days if not needed]