Pay Invoices With Amazon


The PIWA plugin by Zeek is a simple and effective way to incorporate Amazon Pay into your website.

The plugin includes:
Seamless Integration with the WordPress block editor.
Enhanced Security by leveraging Amazon’s proven payment processing infrastructure.
One-Click Checkout for customers who want a fast and simple payment experience.

Please ensure that your WordPress installation meets the required PHP version (5.6 or higher) and WordPress version (5.6 or higher). Visit our GitHub repository for further details, documentation, and support.

Creating Invoices

To create invoices, add either the Adjustable Price or Fixed Price block to a page or post:

  1. Navigate to the page or post where you want to add the payment block.
  2. Click on the + button or type / to add a new block.
  3. Search for Adjustable Price or Fixed Price in the block library.
  4. Click on the block to add it to your page or post.

Once the block is added, you can either email a link to that page to a customer or include a link in an invoice sent from your accounting software of choice, such as QuickBooks, Xero, Zoho, FreshBooks, or Harvest.

The customer will need to have or create an Amazon account to make the payment. Once the payment is made, it will be processed by Amazon and the funds will be transferred to your linked bank account.

For more information on how to set up and manage your Amazon Pay account, please refer to the Amazon Pay Help Center.

Receiving Payments

To receive payments, connect the plugin to your Amazon Pay account using one of the methods the under WP Admin > Pay Invoices With Amazon > Settings:

  1. Connect Automatically: This is the easiest and most secure. Click the Connect Amazon Pay Account button to log in with your Amazon account and have credentials configured automatically.
  2. Send Public Key: Copy-and-paste a plugin-generated Public Key into Amazon Integration Central, then copy-and-paste the returned Public Key ID.
  3. Receive Private Key: Generate a Private Key in Amazon Integration Central, then drag-and-drop the downloaded file onto the Settings field and copy-and-paste the Public Key ID.

Once payments are processed, individual payments will be authorized by Amazon within 24 hours. After that period, click the linked „Reference ID“ for the payment to go to Seller Central. Clicking „Collect Payment“ in Seller Central will transfer the authorized funds.

Further information can be found at Finding your Amazon Pay keys and IDs and in the GitHub repository.

Using as a Shortcode

While the blocks provide a visual preview if using the WordPress block editor, a shortcode is also available for use in the block editor, classic editor, or various layout plugins. The below examples can be copy-and-pasted for testing or custom configuration:

Payment form where customer sets the amount:


Payment button where the amount is $100.50:

[piwa 100.50]

Payment button where the amount is $100.50 and the title is Business Consulting:

[piwa 100.50 "Business Consulting"]

Payment button where the customer sets the amount and inputting an invoice reference number is required:

[piwa input-invoice]

Long-form to display a payment button set to $100.50 for Business Consulting:

[piwa amount="100.50" title="Business Consulting"]

Developer Notes

piwa() can be called with an array of arguments in plugins, mu-plugins, templates, or a theme’s functions.php.

The below example adds payment buttons of various types at the end of Post content if various Categories are assigned.

The existance of Plugin Name: makes it possible to place it in wp-content/plugins/ or a folder within wp-content/plugins to activate or deactivate within WP Admin > Plugins . If placing within a theme’s functions.php or another file that already opens with <?php , the first line <?php should be removed to avoid errors.

 * Plugin Name: Pay Based on Category
 * Description: Display a message with payment buttons on Posts depending on assigned Category. If all the categories are assigned, all the buttons and messages will be added.
 * Version: 1.0
 * @see
 * @see
 * @see
 * @see
    function( $content ) {
        // If the PIWA plugin is not active or this is not a singular template of the "post" post type, do not modify the content.
        if (
            ! function_exists( 'piwa' )
            || ! is_singular( [ 'post' ] )
        ) {
            return $content;

        // If the post is in category Uncategorized, append a pay button where the user specifies the amount.
        if ( has_category( 'Uncategorized' ) ) {
            $content .= '<p>Thanks for reading!<br/>If you feel inclined to contribute, please use the form below.</p>' . piwa();
        // If the post is in category Pay it Forward, append a pay button for $7.00 labeled "Pay it Forward".
        if ( has_category( 'Pay it Forward' ) ) {
            $content .= '<p>Thanks for reading!<br/>If you enjoyed this post, please pay it forward with a small donation:</p>' . piwa([
                'amount' => 7.00,
                'title'  => 'Pay it Forward',
        // If the post is in category Invoice, append a pay button where the customer inputs an Invoice Number and amount.
        if ( has_category( 'Invoice' ) ) {
            $content .= '<p>Thank you for your business!<br/>To make a payment, please input an amount and the associated invoice number:</p>' . piwa([
                'show_customer_invoice_input' => true,

        return $content;
    10 // Default priority is 10. The latest possible priority is PHP_INT_MAX. Attaching to a priority lower than 10 may cause other filters, such as wpautop, to add paragraph tags incorrectly.

Plugin Settings

Settings can be reset with:

wp option delete piwa

Settings can also be hard-coded with the follow script, preferably placed in wp-content/mu-plugins/:

 * Where to find keys & IDs:
 * @see
        'sandbox_mode'       => 1,
        'merchant_id'        => '',
        'client_id_store_id' => '',
        'public_key_id'      => '',
    ] as $key => $value
) {
    putenv( sprintf( 'piwa_%s=%s', $key, $value ) );

Third-Party Services

Pay Invoices with Amazon integrates with Amazon Payments to process invoice payments made through the plugin.
Third-Party Service Links and Policies

  • Amazon Payments Terms of Service:
  • Amazon Payments Privacy Policy:

By using the plugin, you acknowledge and consent to the use of Amazon Payments for payment processing. We ensure that all data transmissions are secure and in compliance with legal standards.


This plugin provides 2 blocks.

  • Piwa Customer Price
  • Piwa Merchant Price


  1. Upload the PIWA plugin to your WordPress plugins directory.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. Follow the instructions on Finding your Amazon Pay keys and IDs or use the Connect Amazon Pay Account button to connect to your Amazon Pay account under WP Admin > Pay Invoices with Amazon > Settings.


What is Amazon Pay?

Amazon Pay allows Amazon customers to pay for services on third-party websites using the payment methods stored in their Amazon accounts.

Is this plugin free?

Yes, this plugin is free to use, but transactions processed with Amazon Pay will be subject to Amazon’s usual charges.

Where can I get support?

For support, please post an issue to the GitHub repository.

What are the prerequisites for using this plugin?

WordPress version 5.6 or later, PHP version 5.6 or later, and an Amazon Pay account.


There are no reviews for this plugin.

Contributors & Developers

“Pay Invoices With Amazon” is open source software. The following people have contributed to this plugin.




  • Initial release.