Mapping Schema (Mapping Filling Method)

What is Mapping Schema

TakeForm supports form filling through the Mapping Filling method. This method allows you to assign exact values to specific form fields using structured data.

When a PDF form is processed by TakeForm AI, we automatically:

  1. Label each form field

  2. Generate a Mapping Schema in JSON format

This Mapping Schema follows the AJV (Another JSON Schema Validator) standard, making it easy to validate and construct your input.

With this approach, you have full control over which data goes into which field—perfect for precise and repeatable form filling.

Why AJV

With AJV, you have big community and library to support. Examples:

How to get Mapping (AJV) schema of my Form

To retrieve the Mapping Schema for your form, follow these simple steps:

  1. Open Your Form Go to the form you uploaded or selected, and click “View”.

  2. Click Fill via API In the top-right corner of the page, click the “Fill via API” button.

  3. Copy the Schema Click the Mapping Schema button. You’ll now see:

    • The Mapping Schema (AJV-compliant JSON)

    • A sample JSON input to help you get started quickly


Mapping Schema Example

Form W-9: https://platform.takeform.app/forms/854d35dc-c401-4079-aadc-63c309a052e8

{
	"additionalProperties": false,
	"properties": {
		"address_line_1": {
			"type": "string"
		},
		"business_name_disregarded_entity_name": {
			"type": "string"
		},
		"city_state_zip": {
			"pattern": "^[^,\\n]*?, [A-Z]{2}, \\d{5}(-\\d{4})?$",
			"type": "string"
		},
		"exemptions": {
			"additionalProperties": false,
			"properties": {
				"exempt_payee_code": {
					"type": "string"
				},
				"exemption_from_fatca_reporting_code": {
					"type": "string"
				}
			},
			"type": "object"
		},
		"federal_tax_classification": {
			"additionalProperties": false,
			"properties": {
				"c_corporation": {
					"type": "boolean"
				},
				"individual_sole_proprietor": {
					"type": "boolean"
				},
				"llc_checkbox": {
					"type": "boolean"
				},
				"llc_tax_classification_code": {
					"pattern": "^[CSP]$",
					"type": "string"
				},
				"other_classification_checkbox": {
					"type": "boolean"
				},
				"other_classification_text": {
					"type": "string"
				},
				"partnership": {
					"type": "boolean"
				},
				"s_corporation": {
					"type": "boolean"
				},
				"trust_estate": {
					"type": "boolean"
				}
			},
			"type": "object"
		},
		"foreign_partners_owners_beneficiaries_indicator": {
			"type": "boolean"
		},
		"list_account_numbers": {
			"description": "List account number(s) here (optional)",
			"minLength": 0,
			"type": "string"
		},
		"name_of_entity_individual": {
			"type": "string"
		},
		"requester_name_address": {
			"description": "Requester's name and address",
			"pattern": "^[\\s\\S]{0,255}$",
			"type": "string"
		},
		"taxpayer_identification_number": {
			"additionalProperties": false,
			"properties": {
				"ein_part_1": {
					"pattern": "^\\d{2}$",
					"type": "string"
				},
				"ein_part_2": {
					"pattern": "^\\d{7}$",
					"type": "string"
				},
				"ssn_part_1": {
					"pattern": "^\\d{3}$",
					"type": "string"
				},
				"ssn_part_2": {
					"pattern": "^\\d{2}$",
					"type": "string"
				},
				"ssn_part_3": {
					"pattern": "^\\d{4}$",
					"type": "string"
				}
			},
			"type": "object"
		}
	},
	"type": "object"
}

Sample JSON

{
	"address_line_1": "123 Main St",
	"business_name_disregarded_entity_name": "Acme Corp",
	"city_state_zip": "Anytown, CA, 91234",
	"exemptions": {
		"exempt_payee_code": "4",
		"exemption_from_fatca_reporting_code": "A"
	},
	"federal_tax_classification": {
		"c_corporation": true,
		"individual_sole_proprietor": false,
		"llc_checkbox": false,
		"other_classification_checkbox": false,
		"partnership": false,
		"s_corporation": false,
		"trust_estate": false
	},
	"foreign_partners_owners_beneficiaries_indicator": false,
	"list_account_numbers": "12345, 67890",
	"name_of_entity_individual": "John Doe",
	"requester_name_address": "Jane Smith\n456 Elm St\nAnytown, CA 91234",
	"taxpayer_identification_number": {
		"ein_part_1": "12",
		"ein_part_2": "3456789"
	}
}

Last updated