=== Payment Gateway for Authorize.net for WooCommerce ===
Contributors: easypayment  
Tags: authorize.net, credit card, visa  
Requires at least: 5.6  
Tested up to: 7.0
Requires PHP: 7.4  
Stable tag: 1.0.13
License: GPLv2 or later  
License URI: https://www.gnu.org/licenses/gpl-2.0.html  

Credit/Debit Cards, eCheck & Google Pay. Supports saved cards, subscriptions & checkout blocks - By an official Authorize.net Partner.

== Description ==

**Payment Gateway for Authorize.net for WooCommerce** by Easy Payment is a secure and feature-rich solution for accepting credit card payments via Authorize.net. Customers stay on your website during checkout, creating a seamless experience.

This plugin uses **Authorize.net Accept.js** to tokenize credit card details before they reach your server—ensuring full **PCI-DSS SAQ A-EP compliance**. It supports one-time and recurring payments with full integration for **WooCommerce Subscriptions** and the modern **Checkout Block** system. Developed by an Official Authorize.net Partner, this plugin ensures high performance and reliability.

=== Payment Methods ===

- Credit & Debit Card Payments
- eCheck (ACH)
- Google Pay


=== Features ===

- Accept credit card payments using Authorize.net Accept.js
- Process refunds and voids from the WooCommerce order screen
- Pre-authorization and capture later ("Authorize Only") supported
- Save cards for future purchases with secure tokenization
- Works with WooCommerce Subscriptions for recurring billing
- FunnelKit compatible for upsell and cross-sell flows
- Fully compatible with WooCommerce Checkout Blocks
- PCI compliant using tokenization (SAQ A-EP)
- Responsive credit card form for all devices
- Logging and debug tools for development and troubleshooting

=== Supported Card Types ===

- Visa  
- MasterCard  
- American Express  
- Discover  
- JCB  
- Diners Club

=== Integration Compatibility ===

- WooCommerce Subscriptions  
- WooCommerce Checkout Blocks  
- WooCommerce Pre-Orders
- FunnelKit Checkout / FunnelKit Upsell


== Installation ==

1. Upload the plugin to the `/wp-content/plugins/` directory.
2. Activate it via **Plugins > Installed Plugins**.
3. Go to **WooCommerce > Settings > Payments > Authorize.net Credit Card**.
4. Enter your Authorize.net credentials: **API Login ID**, **Transaction Key**, and **Client Key**.
5. Enable the gateway and configure optional settings.

== Frequently Asked Questions ==

= Does this plugin support subscriptions? =  
Yes. It fully supports WooCommerce Subscriptions using saved cards via tokenization.

= Why is Accept.js required? =  
Accept.js is used to tokenize card data in the browser before it’s sent to your server, making the integration PCI compliant.

= Can I issue refunds directly from WooCommerce? =  
Yes. You can process refunds and voids from the WooCommerce order admin.

= Will customers leave my site to complete the payment? =  
No. All payment processing happens inline using Accept.js—customers stay on your checkout page.

= Does it support WooCommerce Checkout Blocks? =  
Yes. This plugin is fully compatible with the block-based Cart and Checkout experience.

== Screenshots ==

1. Payment settings in the WooCommerce admin panel  
2. Secure credit card fields powered by Accept.js  

== External Services ==

This plugin connects to several Authorize.net services to process payments securely and provide related functionality:

1. **Authorize.net API**  
   Used for processing payments, issuing refunds, storing payment profiles, and handling subscriptions.  
   - Data sent: transaction amount, customer name, address, and tokenized card data  
   - Endpoints used:  
     - https://api.authorize.net/xml/v1/request.api  
     - https://apitest.authorize.net/xml/v1/request.api  

2. **Accept.js**  
   Used to tokenize credit card details in the browser before they reach your server.  
   - Data sent: raw card number, expiry, CVV (sent directly to Authorize.net via JavaScript SDK)  
   - Endpoints used:  
     - https://js.authorize.net/v1/Accept.js  
     - https://jstest.authorize.net/v1/Accept.js  

3. **Webhook Services**  
   Used to receive updates from Authorize.net about transaction status, subscription events, etc.  
   - Endpoints used:  
     - https://api.authorize.net/rest/v1/webhooks  
     - https://apitest.authorize.net/rest/v1/webhooks  

4. **Merchant Signup Links**  
   Provides a link to register or log in to an Authorize.net merchant account.  
   - Endpoints:  
     - https://account.authorize.net/  
     - https://sandbox.authorize.net/  
     - https://account.authorize.net/signUpNow?resellerId=27457  
   - No personal data is sent by the plugin automatically.  

**Terms of Service:** https://www.authorize.net/about-us/terms.html  
**Privacy Policy:** https://www.authorize.net/about-us/privacy.html

== Changelog ==

= 1.0.13 =
* Fixed - Google Pay live OR_BIBED_11 error by adding a "Google Pay Merchant ID" setting for production transactions.

= 1.0.12 =
* Fixed – capture webhook forcing physical orders to Completed.

= 1.0.11 =
* Improved - PHP 8.5 compatibility: defensive type coercion in payment, refund, and XML request flows (Authorize.Net API, Google Pay, eCheck).

= 1.0.10 =
* Improved - Synchronization between Authorize.net CIM and WooCommerce saved payment methods.

= 1.0.9 =
* Added - FunnelKit compatible for upsell and cross-sell flows.

= 1.0.8 =
* Fixed – Intermittent checkout failures (E00114 Invalid OTS Token) and improved CIM card-saving flow stability.

= 1.0.7 =
* Added – Support for eCheck (ACH) payments.
* Added – Support for Google Pay payments.
* Fixed – Issue preventing new card details from being saved in Authorize.Net for customers with existing saved cards.

= 1.0.6 =
* Enhanced - Improved gateway settings panel text.

= 1.0.5 =
* Added - Compatibility with WordPress 6.9.

= 1.0.4 =
* Improved Gateway Settings UI.

= 1.0.3 =
* Enhancement - Improved credit card form for a smoother checkout experience.

= 1.0.2 =
* Enhanced – Display actual API error messages instead of generic error messages.

= 1.0.1 =
* Enhancement: Display specific Authorize.Net decline reasons in the Checkout block (WooCommerce Blocks) instead of a generic error message.

= 1.0.0 =  
* Initial stable release  
* Accept.js integration for secure card tokenization  
* Support for WooCommerce Subscriptions  
* Support for WooCommerce Checkout Blocks  
* Refunds, voids, saved cards, and authorization capture support
