Step 1
To start with GreenWAVES Payments you will first have to make an account. Lets hop on to admin.grwv.app to create one. After creating your account you will need to go to the Settings menu and set up the basics:
-
Find which currencies you will want to accept as payment.
Input your address for the currencies.
Save settings.
You are done with Step 1. Theoretically you can now accept payments and start focusing on what you want to sell... ...but lets dive a bit deeper into what you can actually do with GreenWAVES Payments!
Choose your platform
GreenWAVES Payments has an approved plugin at the Wordpress Plugin store. To install GreenWAVES on WordPress follow the steps below:
- Go to the Plugins page and click Add new then search for "Greenwaves" and then install and activete the plugin, or download it from from here.
- Once the installation is complete you should see a new area menu item in the Settings POP-UP, named GreenWAVES.
- Create an account in the admin.grwv.app and go to your Settings page.
- If you haven't already, input all of the desired cryptocurrency wallet addresses you wish to accept cryptocurrency with. Additionally you can setup Paypal, Stripe.
- Set your Webhook Secret key to any random string value, and copy the Webhook URL from the wordpress extension of GreenWAVES. [Usually: wp-json/Greenwaves/webhook]
- Copy your Account API Key from the GRWV.APP by going over to your Account, and insert all neccesarry informations to the GreenWAVES Extension in Wordpress.
- You are done! You can start creating your first checkout.
To start accepting payments via our platform through shopify, all you have to do is follow our in depth guide HERE
- Go into the GRWV.APP Admin panel, and create a checkout or create a direct payment link. Set everything up and save your checkout.
- Copy the Embed code
- Insert it to your website's HTML code and enjoy the checkout.
- If you include multiple checkouts on the same page, please note that you only need to include the <script id="bxc-cloud" src="https://grwv.app/js/client.js?cloud=MVdDMnZXe..."></script> script code portion of the embed code once.
The custom / cloud version of GreenWAVES Payments, means integration to any website with just a simple line of code...
- Start by creating the desired checkouts for your items.
- Go to the settings menu and setup everything for your needs. Logo, Favicon, Email notifications, Purchase confirmation email, Buyer data entry, discount codes, and shop details.
- Go and visit your shop from your link, at the bottom of the Settings page at Shop page settings. Alternatively you can setup your domain to get redirected to this URL with a simple .htaccess file
You have the option to accept payments with our basic shop system. It is free and easy to use.
RewriteEngine On
RewriteCond %{HTTP_HOST} [YOURDOMAIN]$ [NC]
RewriteRule ^(.*)$ [YOURSHOPLINK] [L,R=301]
Creating your first checkout
- Create the checkout / product at wordpress to use the GreenWAVES Payments or insert the shortcode into your page.
- Create the checkout from the Checkouts area or via code.
- Insert the Embed code on your website page, in the position where you want to show it.
Information
- GreenWAVES Payments is not designed to accept overpays, but can accept underpayed transactions.
- The checkout page should not be closed before the payment is completed. If it's closed, the cron job function will still check payments but there might be some issue with the process of payment from the customers point of view.
Currency Codes
Currency codes can be used to create checkout links and direct payment links for payment request.
AFN (Afghan Afghani)
ALL (Albanian Lek)
AMD (Armenian Dram)
ANG (Netherlands Antillean Guilder)
AOA (Angolan Kwanza)
ARS (Argentine Peso)
AUD (Australian Dollar)
AWG (Aruban Florin)
AZN (Azerbaijani Manat)
BAM (Bosnia-Herzegovina Convertible Mark)
BBD (Barbadian Dollar)
BDT (Bangladeshi Taka)
BGN (Bulgarian Lev)
BHD (Bahraini Dinar)
BIF (Burundian Franc)
BMD (Bermudan Dollar)
BND (Brunei Dollar)
BOB (Bolivian Boliviano)
BRL (Brazilian Real)
BSD (Bahamian Dollar)
BTN (Bhutanese Ngultrum)
BWP (Botswanan Pula)
BYR (Belarusian Ruble)
BZD (Belize Dollar)
CAD (Canadian Dollar)
CDF (Congolese Franc)
CHF (Swiss Franc)
CLP (Chilean Peso)
CNY (Chinese Yuan)
COP (Colombian Peso)
CRC (Costa Rican Coln)
CUC (Cuban Convertible Peso)
CUP (Cuban Peso)
CVE (Cape Verdean Escudo)
CZK (Czech Republic Koruna)
DJF (Djiboutian Franc)
DKK (Danish Krone)
DOP (Dominican Peso)
DZD (Algerian Dinar)
EEK (Estonian Kroon)
EGP (Egyptian Pound)
ETB (Ethiopian Birr)
EUR (Euro)
FJD (Fijian Dollar)
FKP (Falkland Islands Pound)
GBP (British Pound Sterling)
GEL (Georgian Lari)
GHS (Ghanaian Cedi)
GIP (Gibraltar Pound)
GMD (Gambian Dalasi)
GNF (Guinean Franc)
GNS (Guinean Syli)
GTQ (Guatemalan Quetzal)
GYD (Guyanaese Dollar)
HKD (Hong Kong Dollar)
HNL (Honduran Lempira)
HRK (Croatian Kuna)
HTG (Haitian Gourde)
HUF (Hungarian Forint)
IDR (Indonesian Rupiah)
ILS (Israeli New Sheqel)
INR (Indian Rupee)
IQD (Iraqi Dinar)
IRR (Iranian Rial)
ISK (Icelandic Krna)
JMD (Jamaican Dollar)
JOD (Jordanian Dinar)
JPY (Japanese Yen)
KES (Kenyan Shilling)
KGS (Kyrgystani Som)
KHR (Cambodian Riel)
KMF (Comorian Franc)
KRW (South Korean Won)
KWD (Kuwaiti Dinar)
KYD (Cayman Islands Dollar)
KZT (Kazakhstani Tenge)
LAK (Laotian Kip)
LBP (Lebanese Pound)
LKR (Sri Lankan Rupee)
LRD (Liberian Dollar)
LSL (Lesotho Loti)
LTL (Lithuanian Litas)
LVL (Latvian Lats)
LYD (Libyan Dinar)
MAD (Moroccan Dirham)
MDL (Moldovan Leu)
MGA (Malagasy Ariary)
MKD (Macedonian Denar)
MMK (Myanmar Kyat)
MNT (Mongolian Tugrik)
MOP (Macanese Pataca)
MRO (Mauritanian Ouguiya)
MUR (Mauritian Rupee)
MVR (Maldivian Rufiyaa)
MWK (Malawian Kwacha)
MXN (Mexican Peso)
MXV (Mexican Investment Unit)
MYR (Malaysian Ringgit)
MZN (Mozambican Metical)
NAD (Namibian Dollar)
NGN (Nigerian Naira)
NIO (Nicaraguan Crdoba)
NOK (Norwegian Krone)
NPR (Nepalese Rupee)
NZD (New Zealand Dollar)
OMR (Omani Rial)
PAB (Panamanian Balboa)
PEN (Peruvian Nuevo Sol)
PGK (Papua New Guinean Kina)
PHP (Philippine Peso)
PKR (Pakistani Rupee)
PLN (Polish Zloty)
PYG (Paraguayan Guarani)
QAR (Qatari Rial)
RON (Romanian Leu)
RSD (Serbian Dinar)
RUB (Russian Ruble)
RWF (Rwandan Franc)
SAR (Saudi Riyal)
SBD (Solomon Islands Dollar)
SCR (Seychellois Rupee)
SDG (Sudanese Pound)
SEK (Swedish Krona)
SGD (Singapore Dollar)
SHP (St. Helena Pound)
SKK (Slovak Koruna)
SLL (Sierra Leonean Leone)
SOS (Somali Shilling)
SRD (Surinamese Dollar)
STD (So Tom & Prncipe Dobra)
SVC (Salvadoran Coln)
SZL (Swazi Lilangeni)
THB (Thai Baht)
TJS (Tajikistani Somoni)
TMT (Turkmenistani Manat)
TND (Tunisian Dinar)
TOP (Tongan Paanga)
TRY (Turkish Lira)
TTD (Trinidad & Tobago Dollar)
TWD (New Taiwan Dollar)
TZS (Tanzanian Shilling)
UAH (Ukrainian Hryvnia)
UGX (Ugandan Shilling)
USD (US Dollar)
UYU (Uruguayan Peso)
UZS (Uzbekistan Som)
VEF (Venezuelan Bolvar)
VND (Vietnamese Dong)
VUV (Vanuatu Vatu)
WST (Samoan Tala)
XAF (CFA Franc BEAC)
XCD (East Caribbean Dollar)
XOF (CFA Franc BCEAO)
XPF (CFP Franc)
YER (Yemeni Rial)
ZAR (South African Rand)
ZMW (Zambian Kwacha)
Cryptocurrency Codes
Cryptocurrency codes can be used to create checkout links and direct payment links for payment request.
GRWV_SOL (GreenWAVES)
USDT_SOL (Tether)
DOUG (Doug The Duck)
HAMI (HAMI)
BULL (Bullana)
GRWV (GreenWAVES)
BNB (BNB)
USDT_BSC (Tether)
BUSD (BUSD)
BTC (Bitcoin)
ETH (Ethereum)
USDT (Tether)
LTC (Litecoin)
XRP (Ripple)
DOGE (Bitcoin)
ALGO (Algorand)
BCH (Bitcoin Cash)
Having Problems?
If you're having any issues at all, please contact our friendly support team at info@grwv.app If you are using the WordPress version, please make sure that your WordPress installation is up to date.
Payment not detected - Pending transaction
If you have sent a cryptocurrency payment and GreenWAVES does not detect it (pending transaction), the most common reasons are as follows.
- The checkout page has been closed. The checkout page should not be closed before the payment is completed. If it's closed, the cron job function will still check payments but it might fail to update the customer.
- The amount sent is different from the one shown by GreenWAVES. The amount sent must be the exact amount shown by GreenWAVES or the payment will not be detected.
- The transaction is pending or has not been sent to the blockchain. Make sure the transaction is valid and has been sent. Use external websites like https://www.bscscan.com to check it.
- The service or wallet from which you sent the transaction is not working properly. Send the transaction from a personal wallet, not from an exchange. Transactions made from exchanges can create troubles and are not advised.
- Never use exchange addresses to receive payments, always use addresses from a personal wallet.
- Ensure that you are sending the funds to the main network and not to a testnet network.
WooCommerce order is not marked as completed
If you GreenWAVES Payment show the payment as completed, but the WooCommerce order is still pending. Check all of the following.
- Disable all security plugins and try again.
- Make sure you are not blocking access to WordPress REST API.
Address generation
Single address
By default, GreenWAVES use the single address set in Settings > Cryptocurrency addresses for all transactions in the same cryptocurrency. More details below.
- GreenWAVES detect the payment from its cryptocurrency amount, in which case, the amount is always unique for each transaction.
- The amount always changes less than 0.02% of the original amount.
- The user must submit the exact amount shown by GreenWAVES or the payment will not be detected.
Webhook
Webhooks are automated data sent from GRWV.APP to a URL set by you when something happens. Use the webhook to validate and finalize the purchase. For security reasons you should always validate the purchase via webhook. You must be a developer and know how to coding to setup the webhook.
How to validate a purchase
-
In Settings > Webhook > Webhook URL enter the destination URL. GreenWAVES will send the data to this URL.
The URL must point to a file that read the data received, with PHP, you can use the code below to read the data.
$response = json_decode(file_get_contents('php://input'), true);
- In Settings > Webhook > Webhook secret key enter a secret password of your choice. The password will be included in all webhook calls (see key value in the example below). Use it to verify that the webhook is sent by GreenWAVES and not someone else.
-
Save the changes. GreenWAVES will now start sending the below data when a payment is complete.
To validate the transaction you must check that the value of the key status is equal to C.
If the transaction was made from a dynamic checkout, you must also verify that the transaction amount_fiat value is correct and eqaual to the price amount of the purchased item.
{ "key": "123456789", "transaction": { "id": "231", "title": "My checkout title", "description": "My checkout description", "from": "0x078303fEf888Eadd849312d8b73ca82933e5d00A", "to": "0x078303fEf888Eadd849312d8b73ca82933e5d00A", "hash": "0x219c676e0731892a1f7ef635b2945269c2d9b53d7c36cc331da1bb4e1e526c46", "amount": "0.001", "amount_fiat": "0.1", "cryptocurrency": "grwv", "currency": "eur", "external_reference": "", "creation_time": "2024-04-30 10:00:00", "status": "C", "webhook": "1" "vat": {"amount":"0.33","percentage":"22","country":"Germany","country_code":"DE"} } }
Information
- The webhook sent when a payment is confirmed is only ever sent 1 time.
Dynamic checkouts
To create checkouts by HTML code place the code below into the web page where you want to show the checkout. Copy the Embed code from the checkouts page.
<div data-bxc="name" data-price=""></div>
WordPress shortcode
If you are using the WordPress version you can also use the following shortcode.
[greenwaves id="custom-123" price="" description="" type="inline"]
Attributes
If you are using the WordPress shortcode or the URL method remove the prefix data- from all attributes.
Attribute | Description |
---|---|
data-grwv |
The checkout ID. It must starts with custom-. |
data-price |
The price amount. |
data-external-reference |
Enter the string you want, it will be sent via webhook and as a redirect URL parameter. |
data-redirect |
Redirect the user to a specific URL after the purchase is complete. |
data-currency |
The checkout currency. Default: Settings > Currency. |
data-type |
Set the checkout type. Available options: inline, link, popup, hidden Default: inline. |
data-note |
Add a note to the transaction. The note must be base 64 encoded. The note will be visible in the transaction details. |
data-pay |
Force the user to pay with a specific cryptocurrency. Available options: the cryptocurrency code, e.g. btc. |
Warning Security measure
When using dynamic checkouts without encrypting attributes you must validate the payment via webhook and verify that the transaction amount_fiat value is correct and eqaual to the price amount of the purchased item.
Custom tokens
You can submit your ERC-20 and BEP-20 tokens and start accepting payments with them.
Unlisted token
If your token is not listed on major cryptocurrency exchanges, GreenWAVES cannot get your token's FIAT exchange rate easily. To solve this we can offer support and list your currency even if it is not supported by major exchanges. This service will cost to implement, and is subject to a range of 0$-200$. To list your token please contact us at info@grwv.app or through Telegram
Listed token
If your token is listed on major cryptocurrency exchanges, please provide us with informations at info@grwv.app or through Telegram
PayPal
Use PayPal to start accepting payments via PayPal. To get started, follow the steps below.
- Enter the PayPal email of the account that will receive the payments in GRWV.APP > Settings > PayPal > PayPal email.
- From the top right profile menu click Account Settings > Website payments > Website preferences (https://www.paypal.com/businessmanage/preferences/website) and set the Auto return for website payments to on. Enter http://# as URL.
Information
- You can create a sanbox account to make test payments at https://www.sandbox.paypal.com. To make a payment use a sandbox account from https://developer.paypal.com/dashboard/accounts.
- The details of the PayPal user who sent the payment are visible in the details of the GreenWAVES transaction.
Stripe
Use Stripe to start accepting credit or debit card payments. To get started using Stripe, follow the steps below.
- Register a Stripe account at https://dashboard.stripe.com/register.
- Activate your account at https://dashboard.stripe.com/account/onboarding.
- Visit https://dashboard.stripe.com/webhooks and add an end point, in Endpoint URL enter https://grwv.app/stripe.php Listen for the following events: checkout.session.completed.
- Create a new product from https://dashboard.stripe.com/products and copy the Product ID, e.g. prod_MAxqp5jYGKu2Sx, paste it in GRWV.APP > Settings > Stripe > Product ID. With GreenWAVES, a single product is utilized for all your sales, automatically applying the appropriate sale price. The product title should be generic, such as "Crypto Payment".
- Get the secret key from https://dashboard.stripe.com/apikeys.
- Mind that the amount must be greater than 1 USD ot Stripe may not work.
- Mind that in localhost the transaction will not be marked as completed because the Stripe webhook can not be received.
Information
- Activate Stripe Tax if you are using the Stripe Tax service.
Verifone
Use Verifone (formerly 2Checkout) to start accepting credit or debit card payments. To get started using Verifone, follow the steps below.
- Register a Verifone account at https://www.2checkout.com. You can choose the plan you prefer.
- Go to https://secure.2checkout.com/cpanel/webhooks_api.php (Dashboard > Integrations > Webhooks & API) and copy Merchant Code, Secret Key, and Buy link secret word, paste the values in GreenWAVES > Settings > 2Checkout.
- Go to https://secure.2checkout.com/cpanel/webhooks_api.php (Dashboard > Integrations > Webhooks & API > IPN Settings) and add a new IPN URLs, enter the URL https://grwv.app/verifone.php In General IPN Settings select the trigger Authorized and approved orders (sent after electronic delivery) and save the changes.
- You will need to activate and verify your account before starting selling to real customers but you can use the payment details of the following page for testing purposes: https://verifone.cloud/docs/2checkout/Documentation/09Test_ordering_system/01Test_payment_methods.
- Mind that in localhost the transaction will not be marked as completed because the Verifone webhook can not be received.
Invoicing
- Invoices are not available for pending transactions.
- Invoices are deleted after 24 hours for security reasons. Administrators and users can re-generate them at a later time.
- The invoice generation link is admin.grwv.app/pay.php?invoice=ENCRYPTED-TRANSACTION-ID for example: admin.grwv.app/pay.php?invoice=8kjY56imsLMd89oklbv4. Add the URL attribute download to show directly the PDF.
VAT
- If you enable VAT validation you need to create an account at https://vatsense.com and enter the API key in Settings > VAT > Vatsense API key. This is a paid service but you have 100 free validations per month.
- Once checked, all VAT numbers, even the invalid ones, are saved in the GreenWAVES database and excluded from any future verification.
- To deduct the VAT amount for valid VAT numbers, it is necessary to enable VAT validation.
- VAT is automatically calculated based on the user's IP address.
- VAT is only shown if the IP address is from a VAT-applying country.
- If VAT is enabled, your webhook must verify that the value is equal to or greater than the original value.
- If the invoice is enabled and the user changes the country of the invoice, the VAT country changes accordingly.
- The VAT amount is shown on the PDF invoice.
- The VAT rates are provided by https://vatstack.com and are updated periodically.
- VAT details are sent in the webhook and in the TransactionCompleted JavaScript event.
- VAT details are visible in the transaction details.
- VAT does not need to be enabled for WooCommerce purchases because it is handled by WooCommerce.
Information
- Pending transactions older than 48 hours are deleted automatically. You can change the interval from Settings > Exchange rates refresh interval. Once a pending transaction is deleted, the receiving address linked to it will be available again.
- To disable a cryptocrrency from the payment options remove the cryptocrrency address.
- Multiple checkouts can be present in the same web page but only one will be active at same time.
- GreenWAVES will query the blockchain via AJAX every 5 seconds to verify the payment of pending transactions.
- To test a completed transction multiple times without a real payment add the following attributes to the checkout URL: ?demo=true&amount=[123]&id=[ID]&webhook_key=[key]. Replace [123] with the exact transaction cryptocurrency amount, [ID] with the GreenWAVES transaction ID, [key] with the GreenWAVES webhook secret key, this attribute is optional. The blockchain transaction time must be higher than the GreenWAVES transaction time. If you are using the WordPress version, you have to set the webhook secret key.
Credits
GreenWAVES is powered by the free service below. We thank all the services below for offering free and professional services to the crypto community.
WordPress
Download and Install the Wordpress plugin of GRWV.APP
- The Wordpress Plugin for GreenWAVES Payments is available here.
- After installation please connect the Webhooks and your User ID correctly.
- Insert the shortcode from the GRWV.APP checkout page to your wordpress site to accept payments.
WooCommerce
To start accepting cryptocurrency payments in your WooCommerce shop, follow the steps below.
Downlaod the GRWV.APP Plugin
- Download the GRWV.APP WordPress Plugin from here. Upload the Plugin and install, and activate it, and enter the Settings Wordpress > Settings > greenwaves.
- If you haven't already, create an account to GRWV.APP here. Head to the Settings menu and Setup your account by providing your wallet address for each currency you wish to accept. GRWV.APP > Settings >. Go to the Wordpress > Settings > greenwaves and copy the Webhook URL into the GRWV.APP Webhook URL at the settings page, also enter a Webhook KEY which can be anything, and acts as a password of your webhook URL.
- From the WordPress administration area go WooCommerce > Settings > Payments activate the GreenWAVES payment gateway.
Information
- If you encounter problems, Check the option Do not finalize order to prevent a WooCommerce order from being finalized upon payment completion
Shopify
To start accepting cryptocurrency payments in your Shopify store, follow the steps below.
- Open your store settings area and click Apps and sales channels, then click App Development and Allow custom app development.
- Click Create an app, enter the app name you want, and create the app.
- Click Configure Admin API scopes and select the following: write_assigned_fulfillment_orders, read_assigned_fulfillment_orders, write_orders, read_orders
- Click SAVE then open the API credentials tab and click Install app, after the installation copy the API access token and paste it into GRWV.APP > Settings > Shopify > Access token.
- Copy and paste your store URL to GRWV.APP > Settings > Shopify > Store URL , e.g. https://greenwaves.myshopify.com.
-
Open again your Shopify store settings area and click Checkout and accounts, insert the following code into the Order status page field:
<script> if (!window.location.search.includes("cryptocurrency")) { let GRWV_URL = "https://admin.grwv.app"; let GRWV_API = "GRWV_API_KEY"; let GRWV_PAYMENT_METHOD_TEXT = ["Pay with Crypto"]; let GRWV_INTERVAL = setInterval(function () { let element = document.getElementsByClassName("payment-method-list__item__info"); if (element.length) { if (GRWV_PAYMENT_METHOD_TEXT.includes(element[0].innerHTML)) { document.location = GRWV_URL + "/pay.php?checkout_id=custom-shopify&price=" + Shopify.checkout.payment_due + "¤cy=" + Shopify.checkout.currency + "&external-reference=shopify_" + Shopify.checkout.order_id + "&redirect=" + encodeURIComponent(document.location.href) + "¬e=Shopify Order ID " + Shopify.checkout.order_id + "&cloud=" + GRWV_API; } clearInterval(GRWV_INTERVAL); } }, 50); } </script>
Replace GRWV_API_KEY with your GRWV.App API key which you can find at the GRWV.APP > Accounts > API Key - Open again your store settings area and click Payments, then click Add manual payment method and Create custom payment method. As Custom payment method name enter Pay with Crypto. You can change "Pay with Crypto" with something else but in such a case you have to replace it also on the code of the previous point. If you add translatons you have to add them in the code of the previous point, e.g. let GRWV_PAYMENT_METHOD_TEXT = ["Pay with Crypto", "Pagar con Cripto", "ادفع باستخدام Crypto"];.