Skip to main content
TeraWallet ships a first-class REST API under the terawallet/v1 namespace. It powers the plugin’s own React dashboard and admin screens, and is fully available to your own apps and integrations.
The older wc/v3/wallet/* routes still exist as a deprecated back-compatibility layer and will be removed in a future major release. New integrations should target terawallet/v1.

Base URL

Authentication

Endpoints are grouped by who may call them, and each group uses the matching auth method: For external/server-to-server calls, generate keys under WooCommerce → Settings → Advanced → REST API and send them as HTTP Basic Auth.

Idempotency

State-changing customer endpoints (POST me/topup, POST me/transfer) and admin bulk operations honor an Idempotency-Key request header. Send a unique key (e.g. a UUID) per logical action; a retry with the same key replays the original response instead of creating a duplicate top-up, transfer, or credit. Keys are scoped per user with a 24-hour TTL.

Customer endpoints (me/*)

Get balance

Returns the current user’s balance. The response is multi-currency aware: amount is in the active storefront currency, while base_* fields are always normalized to the shop base currency.

List transactions

Paginated ledger history for the current user. Each row exposes a typed category, one of: topup, cashback, cashback_adjustment, cashback_refund, partial_payment, transfer, refund, adjustment, other.

Create a top-up

Creates a top-up order and returns a payment URL to redirect the customer to.
Send an Idempotency-Key header so a double-submit (or a network retry) returns the original order instead of creating a second top-up.

Transfer funds

Send wallet balance to another registered user. Provide either recipient_id or recipient_email. The recipients route returns a lookup list for an autocomplete picker (gated by a filter).

Other customer reads


Admin endpoints (admin/*)

Require the manage_woocommerce capability.

Transactions

List supports page, per_page, orderby (id, transaction_id, date, amount, currency, type, user_id), order, and type filters. Create a manual credit or debit:
DELETE performs a soft delete by default; pass ?force=true for a permanent delete. The bulk route accepts an action of credit, debit, or delete and is idempotent per user.

Users

List users with their balances, read a single user, and lock/unlock a wallet to block further spending (useful for fraud holds).

Admin transfer

Move balance between two users on the customer’s behalf.

Settings & system endpoints

All responses are JSON. Send Content-Type: application/json on requests with a body, and an Idempotency-Key header on top-ups, transfers and bulk operations.

Legacy namespace (deprecated)

The wc/v3/wallet/* routes from earlier versions remain as thin proxies for back-compatibility and emit the same row shapes as their terawallet/v1 equivalents. Do not build new integrations against them — migrate to terawallet/v1.