WordPress plugin intelligence profile

EtchCon Checkout for Bachs

Accept Bachs hosted payments in WooCommerce, Paid Memberships Pro, Gravity Forms, Fluent Forms, and GiveWP.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.1
Current version1.0.0
WordPress coverageTested up to WordPress 7.1
Minimum stackWP 6.8 · PHP 8.1
Directory statusactive
Last directory update25 Sept 20261mo ago
Active installationsNewAdoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records EtchCon Checkout for Bachs version 1.0.0 as active, updated 1mo ago and tested up to WordPress 7.1.

Overview

About this plugin

EtchCon Checkout for Bachs connects supported WordPress commerce, membership, form, and donation plugins to Bachs hosted checkout.

EtchCon Checkout for Bachs is independently developed by Etchpoint and is not affiliated with or endorsed by Bachs Technologies Limited.

0 supports one-time payments for:

  • WooCommerce
  • Paid Memberships Pro
  • Gravity Forms
  • Fluent Forms Pro payment forms
  • GiveWP

The plugin uses a shared payment core with exact amount verification, signed webhook verification, event deduplication, safe fulfillment, reconciliation tools, diagnostics, and provider-confirmed refunds.

Customers are redirected to Bachs hosted checkout to enter payment details. The plugin does not collect or store full card numbers, CVV/CVC values, or other raw card credentials.

0.

Configuration

Bachs Payments > Settings provides one shared configuration for WooCommerce, Paid Memberships Pro, Gravity Forms, Fluent Forms, and GiveWP.

The active environment requires:

  • A matching Bachs secret API key ( sk_sandbox_... for Sandbox or sk_live_... for Live).
  • The active Bachs webhook signing secret.

The settings screen also supports an optional previous webhook secret during secret rotation and an optional organization ID for stricter provider verification.

php, the following constants remain supported and take precedence over dashboard values when defined:

  • ETCHPOINT_BACHS_ENVIRONMENT – sandbox or live.
  • ETCHPOINT_BACHS_SANDBOX_SECRET_KEY – sandbox secret key.
  • ETCHPOINT_BACHS_LIVE_SECRET_KEY – live secret key.
  • ETCHPOINT_BACHS_WEBHOOK_SECRET – active webhook signing secret.
  • ETCHPOINT_BACHS_WEBHOOK_SECRET_PREVIOUS – previous webhook secret during secret rotation.
  • ETCHPOINT_BACHS_ORGANIZATION_ID – optional organization identifier.

Dashboard-managed secret values are stored in the WordPress options table and are never displayed back in plaintext after saving. They are deleted when the plugin is uninstalled. Financial/audit records remain retained as described below.

Live payments require HTTPS.

Refunds

Administrators can request Bachs refunds from Bachs Payments > Refunds.

Full refunds are supported. Partial refunds are supported when the Bachs settlement currency matches the original WordPress transaction currency. If Bachs settled the charge in a different currency, use a full refund so the plugin does not guess an exchange rate.

Bachs currently permits one refund operation per charge, so a partial refund consumes the refund operation for that charge.

A refund is not treated as complete merely because the API accepted the request. The plugin waits for signed provider evidence confirming the refund before applying the corresponding local refund state.

Reconciliation and diagnostics

Bachs Payments > Reconciliation can safely re-check provider state and retry incomplete WordPress fulfillment.

Bachs Payments > Diagnostics provides read-only configuration and integration checks. Secret values and full provider responses are not displayed.

External Service

This plugin requires Bachs, a third-party payment service provided by Bachs Technologies Limited. The plugin contacts Bachs only when a configured administrator or customer uses functionality that requires the payment service, such as creating or retrieving checkout sessions, verifying payments, requesting refunds, or receiving Bachs webhooks.

io/

io/buyer-terms

io/privacy

io/

Service endpoints used by the plugin:

  • Sandbox API: https://sandbox-api.bachs.io
  • Live API: https://api.bachs.io
  • Hosted checkout: https://checkout.bachs.io

A Bachs merchant account and applicable Bachs service access are required to process payments. Bachs may charge fees under its own terms and pricing. Etchpoint does not control Bachs availability, eligibility decisions, fees, settlement, or payment processing rules.

Data sent to Bachs

For checkout creation, the plugin sends the transaction currency and amount, success and cancel return URLs, an opaque payment reference, correlation metadata identifying the WordPress integration and local transaction record, and customer contact information required for hosted checkout. This includes the customer email address and can include the customer name and phone number when available from the originating integration.

Payment details entered by the customer on hosted checkout are submitted directly to Bachs rather than to this plugin.

When an administrator initiates a refund, the plugin sends the Bachs charge identifier, requested refund amount, internal reference/idempotency information, and an optional administrator-entered refund reason.

The plugin also retrieves payment or refund records from Bachs when verification, reconciliation, diagnostics, or webhook processing requires authoritative provider state.

Local data and privacy

The plugin stores operational payment records in custom WordPress database tables. These records can include the integration name, local WordPress record identifier, Bachs checkout/charge/refund identifiers, amount, currency, processing status, timestamps, error information, and an optional refund reason.

For webhook deduplication and audit processing, the plugin stores provider event identifiers and a SHA-256 hash of the webhook payload. It does not persist the complete raw webhook payload.

The plugin does not store raw card credentials.

Payment, webhook, reconciliation, and refund records are intentionally retained when the plugin is uninstalled. They can be important financial and audit records and are not automatically deleted. Site owners are responsible for retention and deletion in accordance with their legal and operational requirements.

Because local transaction identifiers can link these records to orders, memberships, form submissions, or donations managed by other plugins, those integrations may contain personal data under their own retention policies.

WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • donations
  • forms
  • memberships
  • payments
  • woocommerce
Compatibility & maintenance

Compatibility & maintenance

Tested with WP 7.1

Marked as tested with the current WordPress 7.1 release.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.1
Minimum requirementsWordPress 6.8 · PHP 8.1
Update activity25 Sept 20261mo ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

No tracked version or compatibility changes have been recorded by WP PlugIndex yet.

Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.