ChargeForms
API Reference

REST API

All endpoints live under the chargeforms/v1 namespace and require the same chargeforms_manage_forms capability as the wp-admin screens, authenticated via a WordPress REST nonce (X-WP-Nonce header) or application password.

GET/wp-json/chargeforms/v1/forms

List all forms the authenticated user can manage.

POST/wp-json/chargeforms/v1/forms

Create a new form from a JSON field/settings payload.

GET/wp-json/chargeforms/v1/forms/query

Paginated form listing ({items, total, pages}) — used by the newer Vue-based Forms list screen.

GET/wp-json/chargeforms/v1/forms/{id}

Retrieve a single form's fields and settings.

PUT/wp-json/chargeforms/v1/forms/{id}

Update a form's fields, conditional logic, or settings.

DELETE/wp-json/chargeforms/v1/forms/{id}

Delete a form and its associated entries.

POST/wp-json/chargeforms/v1/forms/{id}/duplicate

Duplicate a form, including its fields and settings.

PATCH/wp-json/chargeforms/v1/forms/{id}/status

Toggle a form's Active/Inactive status.

GET/wp-json/chargeforms/v1/forms/{id}/entries

List entries for a form, with pagination and status filters.

POST/wp-json/chargeforms/v1/forms/{id}/create-payment-intent

Public endpoint (no auth required — any site visitor submitting a payment form needs it). Rate-limited per IP+form; the charge amount is always recalculated server-side from the form's own configuration, never trusted from the request body.

A note on authentication

The public-facing form submission itself does notgo through this API — it posts to WordPress's standard admin-post.php, verified by a per-form nonce, honeypot, and (if configured) reCAPTCHA/hCaptcha/Turnstile. This REST API is for programmatic management of forms and entries by an authenticated site admin or an application integrating with your site.