---
description: "This endpoint provides a [JSONForm](https://jsonforms.io/) schema needed to configure payment methods for transactions on a specified channel. Use this schema to dynamically generate forms based on the selected payment method. The `ChannelID` parameter, obtainable from the Supported Channels endpoint, specifies the target channel for which the form is generated."
title: "Dynamic Form"
---

# Dynamic Form

> This endpoint provides a [JSONForm](https://jsonforms.io/) schema needed to configure payment methods for transactions on a specified channel. Use this schema to dynamically generate forms based on the selected payment method. The `ChannelID` parameter, obtainable from the Supported Channels endpoint, specifies the target channel for which the form is generated.

```http
GET /channels/{ChannelID}/form
```

- `https://api.sandbox.noah.com/v1/channels/{ChannelID}/form` — V1 Sandbox Server
- `https://api.noah.com/v1/channels/{ChannelID}/form` — V1 Production Server

## Authentication

- `X-Api-Key`: Your Noah API key. Required on all requests. See [API Keys](/api-concepts/authentication/api).
- `Api-Signature`: Digitally signed JWT used to verify request authenticity. Optional in sandbox when your API key has no associated signing public key; required in production for all requests. If sent, the signature is always validated. See [Request Signing](/api-concepts/authentication/signing).

## Path parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `ChannelID` | string (uuid) | Yes | Unique identifier for the channel. (length 36-36) |

## Query parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `CustomerID` | string | No | A unique ID which identifies the customer in the Business' internal system and in NOAH. (length 1-42) |
| `PaymentMethodID` | string | No | Existing payment method id to be used. (length 1-150) |

## Responses

### 200 — Payment method form schema

#### `application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `FormSchema` | object | No | Form schema which needs to be filled by the customer. If no customer input is required, this field is omitted. |
| `FormSchema.$schema` | string | Yes |  |
| `FormSchema.type` | string | Yes |  |
| `FormSchema.title` | string | No |  |
| `FormSchema.description` | string | No |  |
| `FormSchema.properties` | object | Yes | (additional properties allowed) |
| `FormSchema.required` | string[] | No |  |
| `FormSchema.allOf` | object[] | No |  |
| `FormMetadata` | object | No | Metadata about a form schema. The ContentHash matches the contentHash in pre-compiled static form schemas, enabling correlation between dynamic and static forms. |
| `FormMetadata.ContentHash` | string | Yes | SHA256 hash of the form schema content. Matches the contentHash field in published static form schema metadata. |

### 400 — Bad request

### 401 — Client is not authorized to perform this action

### 500 — Internal server error

Error responses share one `Error` envelope across the whole API. See https://docs.noah.com/api-concepts/errors.md for its fields, the `Type` values, and the field-level validation details in `RequestExtension` and `DenyExtension`.

## See also

- Rendered reference: https://docs.noah.com/api-reference/dynamic-form
- OpenAPI document: https://docs.noah.com/files/oas-schema.generated.json
