# Form Instance

The object returned by [Finix.PaymentForm()](/js/payment-form). Exposes methods for interacting with the rendered payment form.


```javascript
const form = Finix.PaymentForm(element, environment, application, options);
```

Manually triggers form submission and tokenization. Use this when you want a custom submit button outside the iframe instead of the auto-rendered button provided by `onSubmit`.


```text
form.submit(callback)
```

| Parameter | Type | Required | Description |
|  --- | --- | --- | --- |
| `callback` | `function(error, response)` | Yes | Receives the same parameters as `onSubmit` |


Use `onUpdate` to track validation state and enable or disable your button, then call `form.submit()` on click.

This pattern lets you keep your submit button in your own DOM with your own styles, while still getting real-time validation feedback from the form.