Skip to main content
POST
/
api
/
v1
/
registrations
/
content
/
portal-fields
curl --request POST \
  --url 'https://transaction-tax.api.in.commenda.io/api/v1/registrations/content/portal-fields' \
  --header 'Authorization: Bearer <your_token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "filters": {
      "registration_content_ids": ["CCT_US_STATE_CEN_06_RST"]
    }
  }'
{
  "data": {
    "forms": [
      {
        "registration_content_id": "CCT_US_STATE_CEN_06_RST",
        "jurisdiction_id": "JUR_US_STATE_CA",
        "jurisdiction_name": "California",
        "tax_type": "RST",
        "portals": [
          {
            "portal_id": "PORTAL_CA_CDTFA",
            "portal_name": "California Department of Tax and Fee Administration",
            "portal_url": "https://onlineservices.cdtfa.ca.gov/",
            "credential_fields": [
              {
                "credential_key": "username",
                "credential_name": "Username",
                "credential_type": "text",
                "required": true,
                "is_unique_per_registration": false,
                "display_order": 1
              },
              {
                "credential_key": "password",
                "credential_name": "Password",
                "credential_type": "password",
                "required": true,
                "is_unique_per_registration": false,
                "display_order": 2
              },
              {
                "credential_key": "security_question",
                "credential_name": "Security Question Answer",
                "credential_type": "text",
                "required": true,
                "is_unique_per_registration": false,
                "display_order": 3
              }
            ]
          }
        ]
      },
      {
        "registration_content_id": "CCT_US_STATE_CEN_48_RST",
        "jurisdiction_id": "JUR_US_STATE_TX",
        "jurisdiction_name": "Texas",
        "tax_type": "RST",
        "portals": [
          {
            "portal_id": "PORTAL_TX_COMPTROLLER",
            "portal_name": "Texas Comptroller WebFile",
            "portal_url": "https://comptroller.texas.gov/taxes/file-pay/",
            "credential_fields": [
              {
                "credential_key": "taxpayer_number",
                "credential_name": "Taxpayer Number",
                "credential_type": "text",
                "required": true,
                "is_unique_per_registration": true,
                "regex": "^[0-9]{11}$",
                "display_order": 1
              },
              {
                "credential_key": "webfile_number",
                "credential_name": "WebFile Number",
                "credential_type": "text",
                "required": true,
                "is_unique_per_registration": true,
                "display_order": 2
              }
            ]
          }
        ]
      }
    ]
  }
}
Retrieve the portal information and credential fields required for automated tax filing. Each state has one or more tax portals where credentials are needed to file returns.

Request Body

filters
object
required
filters.registration_content_ids
array
required
Array of registration content IDs to get portal fields for. Get these from the Registration Input Options endpoint.Example: ["CCT_US_STATE_CEN_06_RST", "CCT_US_STATE_CEN_48_RST"]

Response Fields

FieldTypeDescription
formsarrayPortal requirements for each registration content
forms[].registration_content_idstringThe registration content ID
forms[].jurisdiction_idstringThe jurisdiction ID
forms[].jurisdiction_namestringHuman-readable jurisdiction name
forms[].tax_typestringTax type for this registration
forms[].portalsarrayAvailable portals for this registration

Portal Object

FieldTypeDescription
portal_idstringUnique identifier for the portal (use in registration)
portal_namestringHuman-readable portal name
portal_urlstringURL to the state’s tax portal website
credential_fieldsarrayRequired credential fields

Credential Field Object

FieldTypeDescription
credential_keystringField identifier
credential_namestringHuman-readable field name
credential_typestringField type: text, password, pin, etc.
requiredbooleanWhether the field is required
is_unique_per_registrationbooleanWhether each registration needs a unique value
regexstringValidation regex pattern (if applicable)
display_orderintegerSuggested display order for UI
curl --request POST \
  --url 'https://transaction-tax.api.in.commenda.io/api/v1/registrations/content/portal-fields' \
  --header 'Authorization: Bearer <your_token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "filters": {
      "registration_content_ids": ["CCT_US_STATE_CEN_06_RST"]
    }
  }'
{
  "data": {
    "forms": [
      {
        "registration_content_id": "CCT_US_STATE_CEN_06_RST",
        "jurisdiction_id": "JUR_US_STATE_CA",
        "jurisdiction_name": "California",
        "tax_type": "RST",
        "portals": [
          {
            "portal_id": "PORTAL_CA_CDTFA",
            "portal_name": "California Department of Tax and Fee Administration",
            "portal_url": "https://onlineservices.cdtfa.ca.gov/",
            "credential_fields": [
              {
                "credential_key": "username",
                "credential_name": "Username",
                "credential_type": "text",
                "required": true,
                "is_unique_per_registration": false,
                "display_order": 1
              },
              {
                "credential_key": "password",
                "credential_name": "Password",
                "credential_type": "password",
                "required": true,
                "is_unique_per_registration": false,
                "display_order": 2
              },
              {
                "credential_key": "security_question",
                "credential_name": "Security Question Answer",
                "credential_type": "text",
                "required": true,
                "is_unique_per_registration": false,
                "display_order": 3
              }
            ]
          }
        ]
      },
      {
        "registration_content_id": "CCT_US_STATE_CEN_48_RST",
        "jurisdiction_id": "JUR_US_STATE_TX",
        "jurisdiction_name": "Texas",
        "tax_type": "RST",
        "portals": [
          {
            "portal_id": "PORTAL_TX_COMPTROLLER",
            "portal_name": "Texas Comptroller WebFile",
            "portal_url": "https://comptroller.texas.gov/taxes/file-pay/",
            "credential_fields": [
              {
                "credential_key": "taxpayer_number",
                "credential_name": "Taxpayer Number",
                "credential_type": "text",
                "required": true,
                "is_unique_per_registration": true,
                "regex": "^[0-9]{11}$",
                "display_order": 1
              },
              {
                "credential_key": "webfile_number",
                "credential_name": "WebFile Number",
                "credential_type": "text",
                "required": true,
                "is_unique_per_registration": true,
                "display_order": 2
              }
            ]
          }
        ]
      }
    ]
  }
}

Using Portal Information

Storing Credentials

Credentials are stored separately from registrations for security. The typical flow:
  1. Collect credentials from the user based on credential_fields
  2. Store credentials securely (via your credentials management system)
  3. Reference the stored credentials via credential_id when updating the registration

Multiple Portals

Some registrations may have multiple portal options. Present all options to the user and use the selected portal_id when creating/updating the registration.

Credential Reuse

When is_unique_per_registration is false, the same credentials can be used across multiple registrations (common for multi-state sellers using a single account).

Next Steps

With the portal requirements understood, you can:
  1. Build UI forms to collect credentials from sellers
  2. Create registrations with the registration_content_id
  3. Update registrations to add portal credentials
  4. Request validation to enable automated filing