Description
ONE.lat for WooCommerce connects your store to ONE, a payment gateway built for Latin America. Your customers pay with their country’s local method β π¦π· bank transfers, π§π· PIX, π¨π΄ PSE, π²π½ SPEI, or cryptocurrency β and you get settled in USDC directly to your wallet, within minutes, with no need for a US LLC or a US dollar bank account.
Why ONE
- Local payment methods: π¦π· bank transfers in Argentina, π§π· PIX in Brazil, π¨π΄ PSE in Colombia, π²π½ SPEI in Mexico, and crypto in any country.
- Settlement in minutes, in USDC: funds reach your wallet in minutes instead of days, with no banking intermediaries.
- No chargebacks: transfers and crypto payments are irreversible, unlike credit cards β once a payment is confirmed, it stays confirmed.
- No infrastructure friction: you don’t need to open a US LLC or a US dollar bank account to start charging and settling in your store.
- Native WooCommerce integration: works with both classic checkout and Cart & Checkout Blocks, and is compatible with HPOS (High-Performance Order Storage).
How it works
- The customer selects “ONE” as the payment method at your checkout.
- Your store creates a Checkout Preference through the ONE API and redirects the customer to a secure, hosted payment page.
- The customer pays with the local method available in their country.
- ONE notifies the result via webhook. The plugin never trusts that notification on its own: it always makes an authenticated request back to the ONE API to confirm the real status before marking the order as paid.
Supported currencies
USD, ARS, BRL, COP, and MXN. If your store bills in another currency, the ONE payment method is automatically hidden at checkout.
What you need
To try the plugin you do not need an account: copy the public test API Key and API Secret from ONE developers and leave the environment on Staging. To accept real payments, create an account at ONE and replace those keys with your own.
External services
This plugin connects to the ONE API (one.lat) to create payment preferences and confirm the status of your store’s transactions. This connection is required for the payment method to work: without it, ONE cannot process payments for your orders.
Data sent, and when:
- When an order is created: the order amount and currency, an internal order identifier, and the customer’s contact details (email, first name, last name, and phone number) provided at checkout are sent to the ONE API (
api.one.latin production,api.stg.one.latin the staging environment) to generate the ONE hosted checkout. - When a status-change notification (webhook) is received: the plugin makes an authenticated GET request, using your own credentials, to the ONE API to confirm the real status of the payment or refund before updating the order.
These requests only happen when a customer chooses to pay with ONE, and are required to complete the transaction.
More information:
ONE Terms of Use
ONE Privacy Policy
Screenshots


Installation
- Install and activate WooCommerce if you haven’t already.
- Upload the
one-lat-for-woocommercefolder to/wp-content/plugins/, or install the plugin directly from the WordPress plugin screen. - Activate the plugin through the Plugins menu.
- Go to WooCommerce > Settings > Payments > ONE and enable the payment method.
- To test without an account, copy the public API Key and API Secret from ONE developers. To sell for real, create an account at ONE and use your own keys.
- Leave the environment on Staging while you use the test keys. Switch to Production only with your own dashboard credentials.
FAQ
-
Do I need a ONE account to use this plugin?
-
Not for a test order. Copy the public test API Key and API Secret from ONE developers and use the Staging environment. To accept live payments you do need an account at one.lat and your own credentials.
-
Which countries does it work in?
-
The ONE API supports payments in Argentina, Brazil, Colombia, and Mexico with local methods, plus crypto in any country. The billing currencies supported by the plugin are USD, ARS, BRL, COP, and MXN.
-
How is a payment confirmed?
-
ONE notifies status changes via webhook, but the plugin never updates an order based on that notification alone: it always makes an authenticated GET request back to the ONE API to confirm the real status before marking the order as paid, rejected, or expired.
-
Does the plugin process refunds automatically?
-
No. The ONE API does not yet expose an endpoint to create refunds, only to look them up. When ONE confirms a refund, the plugin adds a note to the order so you can reconcile it manually β no automatic refund is created in WooCommerce.
-
Is it compatible with Cart & Checkout Blocks and HPOS?
-
Yes, both are explicitly declared and tested.
-
What happens if my store bills in an unsupported currency?
-
The ONE payment method is automatically hidden at checkout if the store’s currency isn’t one of the supported ones.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“ONE.lat for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “ONE.lat for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.2
- Release 1.0.2.
1.0.1
- Release 1.0.1.
1.0.0
- Every request to the ONE API now sends two extra headers:
x-woocommerce-plugin-version(the installed plugin version) andx-origin: WOOCOMMERCE, so ONE can identify the integration and enforce a minimum supported plugin version.
0.2.2
- Updated the plugin description (header and readme) to better reflect actual coverage: local payments in 4 countries and crypto worldwide, settlement in USDC dollars.
0.2.1
- Added a “Settings” link on the plugins list page (next to “Deactivate”) linking directly to the gateway settings.
0.2.0
- Removed the embedded iframe checkout: both classic checkout and Checkout Blocks now do a full-page redirect to the ONE hosted checkout. This avoids failures in ONE’s anti-bot challenge (Cloudflare/AWS WAF), which cannot complete inside a cross-origin iframe.
- Simplified the Cart & Checkout Blocks integration: it no longer depends on pre-creating a draft order or exposing its own REST endpoints for that.
0.1.4
- The payment method title shown to the customer (previously fixed per currency) is now editable per store in the gateway settings, with the same previous text as the default value.
0.1.3
- Removed the hardcoded minimum/maximum amounts: in Staging the error returned by the ONE API is shown as-is (useful for testing); in Production a generic, customer-facing message is shown instead, without exposing numbers that could become outdated relative to the real API.
0.1.2
- Errors returned by the ONE API when creating a Checkout Preference (amount out of range, invalid contact details, credentials, etc.) are now translated into specific messages for the customer, instead of a single generic message.
0.1.1
- First version of the embedded iframe checkout for Checkout Blocks (later replaced in 0.2.0 by the full-page redirect).
- Visible warning in Staging when the store’s currency isn’t supported or the order amount is out of range.
0.1.0
- Initial version: redirect-type gateway to the ONE hosted checkout.
- Payment confirmation via webhook with authenticated GET verification (the webhook payload is never trusted on its own).
- Logging of ONE refunds as an order note for manual reconciliation.
- Cart & Checkout Blocks integration and HPOS compatibility.
- Option to delete stored settings on uninstall.
