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.
/wp-json/chargeforms/v1/formsList all forms the authenticated user can manage.
/wp-json/chargeforms/v1/formsCreate a new form from a JSON field/settings payload.
/wp-json/chargeforms/v1/forms/queryPaginated form listing ({items, total, pages}) — used by the newer Vue-based Forms list screen.
/wp-json/chargeforms/v1/forms/{id}Retrieve a single form's fields and settings.
/wp-json/chargeforms/v1/forms/{id}Update a form's fields, conditional logic, or settings.
/wp-json/chargeforms/v1/forms/{id}Delete a form and its associated entries.
/wp-json/chargeforms/v1/forms/{id}/duplicateDuplicate a form, including its fields and settings.
/wp-json/chargeforms/v1/forms/{id}/statusToggle a form's Active/Inactive status.
/wp-json/chargeforms/v1/forms/{id}/entriesList entries for a form, with pagination and status filters.
/wp-json/chargeforms/v1/forms/{id}/create-payment-intentPublic 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.