{"id":354241,"date":"2026-08-13T16:12:18","date_gmt":"2026-08-13T16:12:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/digital-goods-payments-for-agentaos\/"},"modified":"2026-08-13T16:11:56","modified_gmt":"2026-08-13T16:11:56","slug":"digital-goods-payments-for-agentaos","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/digital-goods-payments-for-agentaos\/","author":14357053,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.4","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Digital Goods Payments for AgentaOS","header_author":"Mile Milosheski","header_description":"Accept payments for digital goods through AgentaOS. Seamless hosted checkout with fast \"Buy now\" on the product page and standard checkout support. Sandbox &amp; live environments.","assets_banners_color":"9b83e4","last_updated":"2026-08-13 16:11:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/profiles.wordpress.org\/milemilosheski\/","header_author_uri":"https:\/\/www.linkedin.com\/in\/mmilosheski\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":21,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"milemilosheski","date":"2026-08-13 16:11:56"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3645791,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3645791,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3645791,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3645791,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3645791,"resolution":"1","location":"assets","locale":"","width":1280,"height":800}},"screenshots":{"1":"AgentaOS Pay settings under WooCommerce \u2192 Settings \u2192 Payments (environment, keys, currency conversion)."}},"plugin_section":[],"plugin_tags":[275547,3148,6886,1887,286],"plugin_category":[45],"plugin_contributors":[91988],"plugin_business_model":[],"class_list":["post-354241","plugin","type-plugin","status-publish","hentry","plugin_tags-agentaos","plugin_tags-checkout","plugin_tags-digital-goods","plugin_tags-payments","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-milemilosheski","plugin_committers-milemilosheski"],"banners":{"banner":"https:\/\/ps.w.org\/digital-goods-payments-for-agentaos\/assets\/banner-772x250.png?rev=3645791","banner_2x":"https:\/\/ps.w.org\/digital-goods-payments-for-agentaos\/assets\/banner-1544x500.png?rev=3645791","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/digital-goods-payments-for-agentaos\/assets\/icon-128x128.png?rev=3645791","icon_2x":"https:\/\/ps.w.org\/digital-goods-payments-for-agentaos\/assets\/icon-256x256.png?rev=3645791","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/digital-goods-payments-for-agentaos\/assets\/screenshot-1.png?rev=3645791","caption":"AgentaOS Pay settings under WooCommerce \u2192 Settings \u2192 Payments (environment, keys, currency conversion)."}],"raw_content":"<!--section=description-->\n<p>AgentaOS Pay adds an AgentaOS payment gateway to WooCommerce for selling digital goods.<\/p>\n\n<p><strong>Important: digital goods only.<\/strong> This gateway is for non-shippable products (virtual \/ downloadable). It automatically hides itself at checkout whenever the cart contains any physical (shippable) product, and the product-page \"Buy now\" button is never shown for physical products. It does not support physical goods.<\/p>\n\n<ul>\n<li><strong>Hosted, seamless checkout<\/strong> \u2014 buyers pay on a secure AgentaOS page and return to your store fulfilled.<\/li>\n<li><strong>Fast checkout on product pages<\/strong> \u2014 a \"Buy now\" button skips the cart and goes straight to AgentaOS.<\/li>\n<li><strong>Standard checkout<\/strong> \u2014 works on both the classic checkout and the Cart\/Checkout Blocks.<\/li>\n<li><strong>Sandbox &amp; live environments<\/strong> \u2014 separate keys and webhook secrets, switch with one setting.<\/li>\n<li><strong>Signed webhooks<\/strong> \u2014 HMAC-SHA256 verification, plus a server-side return check so orders are fulfilled even where webhooks can't reach the store (e.g. local dev).<\/li>\n<li><strong>Digital-goods aware<\/strong> \u2014 virtual\/downloadable orders auto-complete so downloads unlock instantly.<\/li>\n<\/ul>\n\n<h4>Architecture note: the @agentaos\/pay npm package<\/h4>\n\n<p>WooCommerce runs on PHP, so the gateway itself is implemented in PHP and calls the AgentaOS REST API directly (the same API the SDK wraps). The official <code>@agentaos\/pay<\/code> Node SDK holds a <strong>secret<\/strong> key and is therefore server-side only \u2014 it must never run in a shopper's browser. It is wired into this plugin's <code>package.json<\/code> and used by <code>tools\/webhook-listener.mjs<\/code> for local webhook testing.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the AgentaOS payment API to create and verify payments. This connection is required for the gateway to function.<\/p>\n\n<p>When a customer pays, the plugin sends the following to AgentaOS (https:\/\/api.agentaos.ai): the payment amount and currency, an order description, the buyer's email and name, your store's success and webhook URLs, and order identifiers (order id and order key). AgentaOS returns a hosted checkout URL, and the customer is redirected there to complete payment. AgentaOS then notifies your store of the result via a signed webhook and\/or when the customer returns.<\/p>\n\n<p>No data is sent unless a customer initiates a payment with this gateway. The plugin loads no third-party scripts on your site.<\/p>\n\n<ul>\n<li>Service: AgentaOS \u2014 https:\/\/agentaos.ai<\/li>\n<li>Terms of Service: https:\/\/agentaos.ai\/terms<\/li>\n<li>Privacy Policy: https:\/\/agentaos.ai\/privacy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>digital-goods-payments-for-agentaos<\/code> folder to <code>\/wp-content\/plugins\/<\/code> and activate it.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Settings \u2192 Payments \u2192 AgentaOS Pay<\/strong>.<\/li>\n<li>Choose the <strong>Environment<\/strong> (Sandbox or Live).<\/li>\n<li>Paste your secret key(s) from <strong>AgentaOS dashboard \u2192 Settings \u2192 Developers \u2192 API Keys<\/strong>:\n\n<ul>\n<li>Sandbox keys begin with <code>sk_test_<\/code>.<\/li>\n<li>Live keys begin with <code>sk_live_<\/code>.<\/li>\n<\/ul><\/li>\n<li>In the AgentaOS dashboard, add a webhook endpoint pointing at the URL shown on the settings screen (<code>\/wp-json\/agentaos\/v1\/webhook<\/code>), subscribe to <code>checkout.session.completed<\/code>, and paste the signing secret (<code>whsec_...<\/code>) into the matching field.<\/li>\n<li>Enable the gateway and save.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20webhook%20need%20to%20be%20reachable%20for%20orders%20to%20complete%3F\"><h3>Does the webhook need to be reachable for orders to complete?<\/h3><\/dt>\n<dd><p>In production, yes \u2014 configure it. On local environments the plugin also verifies the session server-side when the buyer returns to the thank-you page, so orders still complete without a public webhook URL.<\/p><\/dd>\n<dt id=\"how%20are%20duplicate%20charges%20avoided%3F\"><h3>How are duplicate charges avoided?<\/h3><\/dt>\n<dd><p>Each checkout session is created with an idempotency key derived from the order id and total.<\/p><\/dd>\n<dt id=\"my%20store%20currency%20is%20not%20eur%2Fusd%20%E2%80%94%20can%20i%20still%20use%20agentaos%3F\"><h3>My store currency is not EUR\/USD \u2014 can I still use AgentaOS?<\/h3><\/dt>\n<dd><p>AgentaOS only accepts EUR, USD, EURC, EURe and USDC. If your store uses another currency, set a <strong>Settlement currency<\/strong> and a <strong>Conversion rate<\/strong> on the gateway settings screen. The order total is converted to the settlement currency before it is sent to AgentaOS, the customer is charged that converted amount, and payment confirmation is validated against it. The WooCommerce order stays in your store currency, and a note records the converted amount. If your store already uses a supported currency, no conversion happens.<\/p><\/dd>\n<dt id=\"how%20do%20refunds%20work%3F\"><h3>How do refunds work?<\/h3><\/dt>\n<dd><p>AgentaOS provides no refund API, so refunds cannot be automated. Issue the refund from your AgentaOS dashboard, then use WooCommerce's built-in <strong>Refund manually<\/strong> button on the order to record it (this keeps stock and reporting accurate; it does not move money). AgentaOS orders show a reminder of this workflow on the order screen.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Accept payments for digital goods in WooCommerce via AgentaOS: hosted checkout, product-page fast checkout, sandbox and live.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/354241","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=354241"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/milemilosheski"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=354241"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=354241"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=354241"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=354241"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=354241"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=354241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}