Back to install picker

Install on WooCommerce

Real WordPress plugin. Tiyo appears as a payment method at WooCommerce checkout; orders auto-mark paid via webhook.

Pick this path if…
The merchant runs a WordPress + WooCommerce store. You want Tiyo to appear as a payment option at the standard Woo checkout, with orders flipping to Paid automatically when the customer completes checkout.
  1. 1
    Get the plugin
    The plugin lives at integrations/woocommerce/tiyo-payments/ in the Tiyo Pay repo. Zip the directory, or pull a release zip from github.com/goodcodeworks/tiyo-gateway.
  2. 2
    Upload to WordPress
    WordPress Admin → Plugins → Add New → Upload Plugin. Pick the zip. Click Install Now, then Activate.
  3. 3
    Configure the merchant ID
    WordPress Admin → WooCommerce → Settings → Payments. Click Tiyo Pay. Paste the brz_mer_… from the Tiyo Pay dashboard's Settings → Business info into Merchant ID. Tick Enable Tiyo Pay. Save.
  4. 4
    Register the webhook
    In the Tiyo Pay dashboard → Webhooks → Add webhook. URL:
    https://YOURSTORE.com/?wc-api=tiyo_payment_webhook
    Subscribe to payment.completed, payment.refunded, and payment.failed. Save the signing secret immediately — Tiyo only shows it once. Paste it into the plugin settings under Webhook secret.
  5. 5
    Test with a real Woo checkout
    Place a test order on the storefront. At checkout, Tiyo Pay should appear as a payment method. Pick it; click Place order. You'll be redirected to tiyopay.vercel.app/pay/…. After payment, the customer lands back on Woo's order-received page and the order status flips to Processing (or Completed for digital goods) automatically.
  6. 6
    Verify the webhook is firing
    In the Tiyo Pay dashboard → Webhooks → click your webhook → Deliveries tab. You should see a payment.completed delivery with HTTP 200. If it's 4xx/5xx, click in for the response body — the plugin's webhook handler returns a clear error.
    If the webhook is showing signature_invalid, the signing secret in plugin settings doesn't match the one Tiyo minted. Rotate from the Tiyo Pay dashboard and paste the new secret into Woo settings.
How reconciliation works

The plugin round-trips your wc_order_id through Tiyo:

  1. process_payment stamps metadata.wc_order_id on the checkout session.
  2. Tiyo echoes that back on the payment.completed webhook.
  3. The webhook handler matches the order by wc_order_id, calls $order->payment_complete($txn_id).
  4. Refunds via Tiyo fire payment.refunded → handler runs $order->refund_payment(...).

No manual marking-as-paid needed. This is the tightest of the four integrations.