Content
PMI Cancellation Request Packet API reference
Prepare a borrower-authored PMI cancellation request for a one-unit principal residence with a conventional closed-end mortgage and borrower-paid PMI. Support either a server-validated original-value request at or below 80% using borrower-supplied figures, or a non-guaranteeing current-value evaluation and valuation-instructions request. Require a current account, the common 30/60-day payment-history confirmations, a current servicer-designated PMI correspondence address, no payment or valuation-fee enclosure, and no active foreclosure sale, bankruptcy, or litigation. Do not use for FHA, VA, USDA, lender-paid insurance, HELOCs, reverse mortgages, unsupported property types, automatic-termination disputes, or a promised outcome.
Published Aug 15, 2026
Workflow slug: pmi-cancellation-request-packet. Workflow version: 1. Live schema · Markdown reference.
How it works
Fill out form
Complete the guided fields online.
Preview PDF
Review the generated PDF before mailing.
We print and mail it via USPS.
How does an agent prepare this form?
PostalForm uses the same workflow definition for this API reference and its guided browser form. Fetch the live schema, collect the active required fields and attachments, and validate the completed request. Review the generated PDF, resolved recipient, mailing service and price with the owner before authorizing payment.
Submission and recipient rules
| Setting | Current workflow value |
|---|---|
| Form slug | pmi-cancellation-request-packet |
| Recipient mode | user |
| Certified Mail | required |
| Base U.S. mail service | USPS First-Class Mail (mail_class="standard" in the API); not USPS Marketing Mail |
| Attachment total limit | 12 MB |
| Validate without payment | POST /api/machine/orders/validate or POST /api/machine/mpp/orders/validate |
| Machine order | POST /api/machine/orders (x402) or POST /api/machine/mpp/orders (MPP) |
Send a top-level form instead of pdf or letter; those three document sources are mutually exclusive. Workflow forms are letters, not postcards. The machine envelope requires buyer, sender and recipient fields. For predefined or computed recipients, the server binds the final recipient to the workflow rules. Inspect the resolved recipient returned by validation; do not substitute a convenient office address.
The template below is structural, not ready to submit: replace every placeholder, complete the active fields, omit unused optional attachments, and use the field options and visibility rules in the schema. Empty strings and unchecked checkboxes are not user answers. Never infer a signature, legal eligibility, factual declaration or consent from a default value.
JSON request template
{
"request_id": "<new UUID; preserve on retry>",
"buyer_name": "<buyer name>",
"buyer_email": "<buyer email>",
"sender_name": "<sender name>",
"sender_address_type": "Manual",
"sender_address_manual": {
"line1": "<street address>",
"city": "<city>",
"state": "<state or region>",
"zip": "<postal code>",
"countryCode": "US"
},
"recipient_name": "<confirmed recipient name>",
"recipient_address_type": "Manual",
"recipient_address_manual": {
"line1": "<street address>",
"city": "<city>",
"state": "<state or region>",
"zip": "<postal code>",
"countryCode": "US"
},
"mail_class": "standard",
"double_sided": true,
"color": false,
"certified": true,
"form": {
"slug": "pmi-cancellation-request-packet",
"fields": {
"relationship_to_loan": "",
"loan_type": "",
"mortgage_insurance_type": "",
"property_type": "",
"mortgage_age_scope": "",
"foreclosure_sale_scheduled": "",
"active_bankruptcy_or_litigation": "",
"payment_or_fee_enclosed": "",
"request_path": "",
"payments_current": "",
"no_30_day_late_last_12_months": "",
"no_60_day_late_last_24_months": "",
"loan_purpose": "",
"original_purchase_price": "",
"original_appraised_value": "",
"refinance_appraised_value": "",
"original_property_value": "",
"current_unpaid_principal_balance": "",
"no_junior_liens": "",
"property_value_not_declined": "",
"original_value_request_confirmed": false,
"current_value_reason": "",
"include_current_value_estimate": false,
"estimated_current_property_value": "",
"include_improvement_summary": false,
"improvement_summary": "",
"current_value_request_confirmed": false,
"letter_date": "",
"sender_name": "",
"include_co_borrowers": false,
"co_borrower_names": "",
"sender_address": "",
"property_address": "",
"mortgage_account_number": "",
"current_monthly_pmi": "",
"investor_type": "",
"phone": "",
"email": "",
"recipient_name": "",
"recipient_address": "",
"designated_address_source": "",
"designated_address_confirmed": false,
"include_attachment_summary": false,
"attachment_summary": "",
"signature": "",
"facts_acknowledged": false,
"product_limits_acknowledged": false
},
"attachments": [
{
"id": "supporting_records",
"file_name": "<filename>",
"base64": "<base64 file content>"
}
]
}
}
Field reference
| Field ID | Label | Type | Required when active | Choices |
|---|---|---|---|---|
relationship_to_loan |
Your relationship to the mortgage | select | Yes | Borrower or co-borrower, Authorized representative, Successor, heir, or estate representative, Another relationship or unsure |
loan_type |
Mortgage type | select | Yes | Conventional closed-end residential mortgage, FHA mortgage, VA mortgage, USDA mortgage, Home equity line of credit (HELOC), Reverse mortgage, Another loan type or unsure |
mortgage_insurance_type |
Mortgage-insurance type | select | Yes | Borrower-paid private mortgage insurance (PMI), Lender-paid mortgage insurance, FHA mortgage-insurance premium (MIP), USDA mortgage insurance, VA funding fee or another VA charge, Another type or unsure |
property_type |
Property and occupancy | select | Yes | One-unit principal residence, Second home, Two- to four-unit principal residence, Investment property, Another property type or unsure |
mortgage_age_scope |
When did this mortgage close? | select | Yes | Closed on or after July 29, 1999, Closed before July 29, 1999, Unsure |
foreclosure_sale_scheduled |
Is a foreclosure sale scheduled? | select | Yes | No, Yes, Unsure |
active_bankruptcy_or_litigation |
Is there an active bankruptcy, lawsuit, or court deadline? | select | Yes | No, Yes, Unsure |
payment_or_fee_enclosed |
Will this packet include a mortgage payment, valuation fee, coupon, check, money order, or original document? | select | Yes | No, Yes |
request_path |
What should this packet request? | select | Yes | Original-value PMI cancellation request, Current-value evaluation and valuation instructions, PMI should already have ended automatically, Unsure which path applies |
payments_current |
Is the mortgage current? | select | Yes | Yes, No, Unsure |
no_30_day_late_last_12_months |
No payment was 30 or more days late in the last 12 months | select | Yes | Yes, No, Unsure |
no_60_day_late_last_24_months |
No payment was 60 or more days late in the last 24 months | select | Yes | Yes, No, Unsure |
loan_purpose |
Was this mortgage used to purchase or refinance the property? | select | Yes | Purchase mortgage, Refinance mortgage, Another purpose or unsure |
original_purchase_price |
Original purchase price | text | Yes | See schema |
original_appraised_value |
Original appraised value | text | Yes | See schema |
refinance_appraised_value |
Refinance appraised value | text | Yes | See schema |
original_property_value |
Original property value used for this request | text | Yes | See schema |
current_unpaid_principal_balance |
Current unpaid principal balance | text | Yes | See schema |
no_junior_liens |
There is no junior lien, such as a second mortgage, on the home | select | Yes | Yes, No, Unsure |
property_value_not_declined |
To the best of my knowledge, the property value has not declined below its original value | select | Yes | Yes, No, Unsure |
original_value_request_confirmed |
Prepare my original-value PMI cancellation request using these figures | checkbox | Yes | See schema |
current_value_reason |
Why are you requesting current-value evaluation? | select | Yes | General property appreciation, Substantial improvements completed, Both appreciation and substantial improvements, Another reason or unsure |
include_current_value_estimate |
Include my nonbinding estimate of current property value | checkbox | No | See schema |
estimated_current_property_value |
Estimated current property value | text | Yes | See schema |
include_improvement_summary |
Describe substantial improvements | checkbox | No | See schema |
improvement_summary |
Substantial improvements completed | textarea | Yes | See schema |
current_value_request_confirmed |
Ask the servicer to evaluate current-value cancellation and provide its approved valuation instructions | checkbox | Yes | See schema |
letter_date |
Letter date | date | Yes | See schema |
sender_name |
Borrower full name | text | Yes | See schema |
include_co_borrowers |
Include other borrower names for account identification | checkbox | No | See schema |
co_borrower_names |
Other borrower names on the account | text | Yes | See schema |
sender_address |
Borrower return mailing address | address | Yes | See schema |
property_address |
Mortgaged property address | text | Yes | See schema |
mortgage_account_number |
Mortgage account or loan number | text | Yes | See schema |
current_monthly_pmi |
Current monthly PMI charge (optional) | text | No | See schema |
investor_type |
Mortgage investor, if known | select | Yes | Fannie Mae, Freddie Mac, Another investor, Unknown |
phone |
Phone number (optional) | text | No | See schema |
email |
Email address (optional) | text | No | See schema |
recipient_name |
Mortgage servicer and PMI department | text | Yes | See schema |
recipient_address |
PMI or mortgage-insurance correspondence address | address | Yes | See schema |
designated_address_source |
Where did you verify this address? | select | Yes | Current mortgage statement, PMI disclosure or current servicer letter, Current servicer website, Current instructions from a servicer representative, Another current servicer source |
designated_address_confirmed |
I confirmed this is the servicer’s current address for PMI or mortgage-insurance cancellation correspondence | checkbox | Yes | See schema |
include_attachment_summary |
List the supporting records in the letter | checkbox | No | See schema |
attachment_summary |
Supporting records enclosed | textarea | Yes | See schema |
signature |
Borrower signature | signature | Yes | See schema |
facts_acknowledged |
I reviewed the generated packet and confirm its account details, values, and factual statements are accurate | checkbox | Yes | See schema |
product_limits_acknowledged |
I understand PostalForm prepares and mails the request but does not decide eligibility, order a valuation, pay a fee, provide legal advice, or guarantee PMI cancellation | checkbox | Yes | See schema |
Compound fields use nested objects keyed by subfield ID. Evaluate group and field visibility before deciding which fields are active. Conditional requirements, validation rules, recipient rules, attachment formats and compliance policies are preserved in the complete schema below.
Complete workflow schema
{
"schema_version": 1,
"workflow_version": 1,
"slug": "pmi-cancellation-request-packet",
"name": "PMI Cancellation Request Packet",
"description": "Check the supported original-value request path or ask for current-value evaluation instructions, create a signed PMI cancellation request, attach supporting copies, and mail the reviewed packet by Certified Mail.",
"agent_summary": "Prepare a borrower-authored PMI cancellation request for a one-unit principal residence with a conventional closed-end mortgage and borrower-paid PMI. Support either a server-validated original-value request at or below 80% using borrower-supplied figures, or a non-guaranteeing current-value evaluation and valuation-instructions request. Require a current account, the common 30/60-day payment-history confirmations, a current servicer-designated PMI correspondence address, no payment or valuation-fee enclosure, and no active foreclosure sale, bankruptcy, or litigation. Do not use for FHA, VA, USDA, lender-paid insurance, HELOCs, reverse mortgages, unsupported property types, automatic-termination disputes, or a promised outcome.",
"form_summary": "Use this workflow for borrower-paid PMI on your own conventional mortgage. PostalForm checks the narrow original-value arithmetic or prepares a current-value evaluation request, generates the signed letter, appends your supporting copies, and mails the reviewed packet to the servicer address you confirm.",
"data_collected": [
"Borrower identity, return address, property address, contact details, and mortgage account number",
"Mortgage type, PMI type, property scope, loan purpose, original-value figures, current principal balance, and payment-history confirmations",
"Current-value evaluation reason and optional improvement or value details when that branch is selected",
"Mortgage servicer, PMI or mortgage-insurance department, current confirmed mailing address, and address source",
"Optional supporting mortgage statements, PMI disclosures, closing records, appraisals, curtailment records, and servicer correspondence",
"Typed or drawn borrower signature and product-limit acknowledgements"
],
"topics": [
"mortgages",
"private mortgage insurance",
"PMI cancellation",
"homeowners",
"consumer finance",
"certified mail"
],
"category": "pmi_cancellation_request_packet",
"publish_state": "published",
"aliases": [
"private-mortgage-insurance-cancellation",
"mortgage-insurance-removal-request",
"pmi-removal-letter"
],
"llms": true,
"indexable": true,
"certified_mail": "required",
"recipient": {
"mode": "user"
},
"compliance_policy": {
"id": "pmi_cancellation_request_packet",
"version": 1,
"recheckStages": [
"preview",
"approval",
"checkout",
"payment",
"fulfillment",
"machine"
]
},
"checkout_flow": "forms_order",
"published_at": "2026-08-15",
"updated_at": "2026-08-15",
"groups": [
{
"id": "scope",
"label": "Supported PMI scope",
"description": "Confirm this is borrower-paid PMI on your own conventional mortgage. Other mortgage-insurance products and urgent legal matters use different paths.",
"depends_on": []
},
{
"id": "path",
"label": "Choose the request path",
"description": "Use original value only when the supplied balance is at or below 80% of the applicable original value. Current-value requests ask the servicer for its rules and approved valuation process.",
"depends_on": []
},
{
"id": "original_value",
"label": "Original-value request",
"description": "Enter the figures from your closing or refinance records and a current mortgage record. PostalForm validates the 80% comparison but does not decide final eligibility.",
"visibility": {
"fieldId": "request_path",
"operator": "equals",
"value": "Original-value PMI cancellation request"
},
"depends_on": [
"request_path"
]
},
{
"id": "current_value",
"label": "Current-value evaluation request",
"description": "Ask the servicer which investor, seasoning, property, loan-to-value, and approved valuation requirements apply. Do not order a valuation independently unless the servicer says it will accept it.",
"visibility": {
"fieldId": "request_path",
"operator": "equals",
"value": "Current-value evaluation and valuation instructions"
},
"depends_on": [
"request_path"
]
},
{
"id": "borrower",
"label": "Borrower and mortgage",
"description": "Enter the information the servicer needs to identify you, the property, and the mortgage account.",
"depends_on": []
},
{
"id": "servicer",
"label": "Mortgage servicer and PMI address",
"description": "Use the current department and address for PMI or mortgage-insurance cancellation correspondence—not a payment address unless the servicer says they are the same.",
"depends_on": []
},
{
"id": "evidence",
"label": "Supporting records",
"description": "Add relevant copies only. Keep originals and do not include a payment or valuation fee.",
"depends_on": []
},
{
"id": "review",
"label": "Sign and review",
"description": "Sign the request and confirm the facts, destination, and product limits before preview.",
"depends_on": []
}
],
"fields": [
{
"id": "relationship_to_loan",
"label": "Your relationship to the mortgage",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "scope",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Borrower or co-borrower",
"Authorized representative",
"Successor, heir, or estate representative",
"Another relationship or unsure"
],
"compound": null
},
{
"id": "loan_type",
"label": "Mortgage type",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "scope",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Conventional closed-end residential mortgage",
"FHA mortgage",
"VA mortgage",
"USDA mortgage",
"Home equity line of credit (HELOC)",
"Reverse mortgage",
"Another loan type or unsure"
],
"compound": null
},
{
"id": "mortgage_insurance_type",
"label": "Mortgage-insurance type",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "scope",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Borrower-paid private mortgage insurance (PMI)",
"Lender-paid mortgage insurance",
"FHA mortgage-insurance premium (MIP)",
"USDA mortgage insurance",
"VA funding fee or another VA charge",
"Another type or unsure"
],
"compound": null
},
{
"id": "property_type",
"label": "Property and occupancy",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": "half",
"group_id": "scope",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"One-unit principal residence",
"Second home",
"Two- to four-unit principal residence",
"Investment property",
"Another property type or unsure"
],
"compound": null
},
{
"id": "mortgage_age_scope",
"label": "When did this mortgage close?",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": "half",
"group_id": "scope",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Closed on or after July 29, 1999",
"Closed before July 29, 1999",
"Unsure"
],
"compound": null
},
{
"id": "foreclosure_sale_scheduled",
"label": "Is a foreclosure sale scheduled?",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": "half",
"group_id": "scope",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"No",
"Yes",
"Unsure"
],
"compound": null
},
{
"id": "active_bankruptcy_or_litigation",
"label": "Is there an active bankruptcy, lawsuit, or court deadline?",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": "half",
"group_id": "scope",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"No",
"Yes",
"Unsure"
],
"compound": null
},
{
"id": "payment_or_fee_enclosed",
"label": "Will this packet include a mortgage payment, valuation fee, coupon, check, money order, or original document?",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "scope",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"No",
"Yes"
],
"compound": null
},
{
"id": "request_path",
"label": "What should this packet request?",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "path",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Original-value PMI cancellation request",
"Current-value evaluation and valuation instructions",
"PMI should already have ended automatically",
"Unsure which path applies"
],
"compound": null
},
{
"id": "payments_current",
"label": "Is the mortgage current?",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": "half",
"group_id": "path",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Yes",
"No",
"Unsure"
],
"compound": null
},
{
"id": "no_30_day_late_last_12_months",
"label": "No payment was 30 or more days late in the last 12 months",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": "half",
"group_id": "path",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Yes",
"No",
"Unsure"
],
"compound": null
},
{
"id": "no_60_day_late_last_24_months",
"label": "No payment was 60 or more days late in the last 24 months",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": "half",
"group_id": "path",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Yes",
"No",
"Unsure"
],
"compound": null
},
{
"id": "loan_purpose",
"label": "Was this mortgage used to purchase or refinance the property?",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": "half",
"group_id": "original_value",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Purchase mortgage",
"Refinance mortgage",
"Another purpose or unsure"
],
"compound": null
},
{
"id": "original_purchase_price",
"label": "Original purchase price",
"type": "text",
"required": true,
"meta_class": "currency",
"ui_width": "half",
"group_id": "original_value",
"choice_group": null,
"choice_label": null,
"visibility": {
"fieldId": "loan_purpose",
"operator": "equals",
"value": "Purchase mortgage"
},
"depends_on": [
"loan_purpose"
],
"compound": null
},
{
"id": "original_appraised_value",
"label": "Original appraised value",
"type": "text",
"required": true,
"meta_class": "currency",
"ui_width": "half",
"group_id": "original_value",
"choice_group": null,
"choice_label": null,
"visibility": {
"fieldId": "loan_purpose",
"operator": "equals",
"value": "Purchase mortgage"
},
"depends_on": [
"loan_purpose"
],
"compound": null
},
{
"id": "refinance_appraised_value",
"label": "Refinance appraised value",
"type": "text",
"required": true,
"meta_class": "currency",
"ui_width": "half",
"group_id": "original_value",
"choice_group": null,
"choice_label": null,
"visibility": {
"fieldId": "loan_purpose",
"operator": "equals",
"value": "Refinance mortgage"
},
"depends_on": [
"loan_purpose"
],
"compound": null
},
{
"id": "original_property_value",
"label": "Original property value used for this request",
"type": "text",
"required": true,
"meta_class": "currency",
"ui_width": "half",
"group_id": "original_value",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "current_unpaid_principal_balance",
"label": "Current unpaid principal balance",
"type": "text",
"required": true,
"meta_class": "currency",
"ui_width": "half",
"group_id": "original_value",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "no_junior_liens",
"label": "There is no junior lien, such as a second mortgage, on the home",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": "half",
"group_id": "original_value",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Yes",
"No",
"Unsure"
],
"compound": null
},
{
"id": "property_value_not_declined",
"label": "To the best of my knowledge, the property value has not declined below its original value",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "original_value",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Yes",
"No",
"Unsure"
],
"compound": null
},
{
"id": "original_value_request_confirmed",
"label": "Prepare my original-value PMI cancellation request using these figures",
"type": "checkbox",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "original_value",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "current_value_reason",
"label": "Why are you requesting current-value evaluation?",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "current_value",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"General property appreciation",
"Substantial improvements completed",
"Both appreciation and substantial improvements",
"Another reason or unsure"
],
"compound": null
},
{
"id": "include_current_value_estimate",
"label": "Include my nonbinding estimate of current property value",
"type": "checkbox",
"required": false,
"meta_class": null,
"ui_width": null,
"group_id": "current_value",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "estimated_current_property_value",
"label": "Estimated current property value",
"type": "text",
"required": true,
"meta_class": "currency",
"ui_width": null,
"group_id": "current_value",
"choice_group": null,
"choice_label": null,
"visibility": {
"fieldId": "include_current_value_estimate",
"operator": "truthy"
},
"depends_on": [
"include_current_value_estimate"
],
"compound": null
},
{
"id": "include_improvement_summary",
"label": "Describe substantial improvements",
"type": "checkbox",
"required": false,
"meta_class": null,
"ui_width": null,
"group_id": "current_value",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "improvement_summary",
"label": "Substantial improvements completed",
"type": "textarea",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "current_value",
"choice_group": null,
"choice_label": null,
"visibility": {
"fieldId": "include_improvement_summary",
"operator": "truthy"
},
"depends_on": [
"include_improvement_summary"
],
"validation": {
"minLength": 10,
"maxLength": 2500
},
"compound": null
},
{
"id": "current_value_request_confirmed",
"label": "Ask the servicer to evaluate current-value cancellation and provide its approved valuation instructions",
"type": "checkbox",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "current_value",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "letter_date",
"label": "Letter date",
"type": "date",
"required": true,
"meta_class": null,
"ui_width": "half",
"group_id": "borrower",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "sender_name",
"label": "Borrower full name",
"type": "text",
"required": true,
"meta_class": "name",
"ui_width": "half",
"group_id": "borrower",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "include_co_borrowers",
"label": "Include other borrower names for account identification",
"type": "checkbox",
"required": false,
"meta_class": null,
"ui_width": null,
"group_id": "borrower",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "co_borrower_names",
"label": "Other borrower names on the account",
"type": "text",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "borrower",
"choice_group": null,
"choice_label": null,
"visibility": {
"fieldId": "include_co_borrowers",
"operator": "truthy"
},
"depends_on": [
"include_co_borrowers"
],
"compound": null
},
{
"id": "sender_address",
"label": "Borrower return mailing address",
"type": "address",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "borrower",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "property_address",
"label": "Mortgaged property address",
"type": "text",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "borrower",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "mortgage_account_number",
"label": "Mortgage account or loan number",
"type": "text",
"required": true,
"meta_class": null,
"ui_width": "half",
"group_id": "borrower",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"validation": {
"minLength": 3,
"maxLength": 64
},
"compound": null
},
{
"id": "current_monthly_pmi",
"label": "Current monthly PMI charge (optional)",
"type": "text",
"required": false,
"meta_class": "currency",
"ui_width": "half",
"group_id": "borrower",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "investor_type",
"label": "Mortgage investor, if known",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": "half",
"group_id": "borrower",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Fannie Mae",
"Freddie Mac",
"Another investor",
"Unknown"
],
"compound": null
},
{
"id": "phone",
"label": "Phone number (optional)",
"type": "text",
"required": false,
"meta_class": "phone",
"ui_width": "half",
"group_id": "borrower",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "email",
"label": "Email address (optional)",
"type": "text",
"required": false,
"meta_class": "email",
"ui_width": null,
"group_id": "borrower",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "recipient_name",
"label": "Mortgage servicer and PMI department",
"type": "text",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "servicer",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "recipient_address",
"label": "PMI or mortgage-insurance correspondence address",
"type": "address",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "servicer",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "designated_address_source",
"label": "Where did you verify this address?",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": "half",
"group_id": "servicer",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Current mortgage statement",
"PMI disclosure or current servicer letter",
"Current servicer website",
"Current instructions from a servicer representative",
"Another current servicer source"
],
"compound": null
},
{
"id": "designated_address_confirmed",
"label": "I confirmed this is the servicer’s current address for PMI or mortgage-insurance cancellation correspondence",
"type": "checkbox",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "servicer",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "include_attachment_summary",
"label": "List the supporting records in the letter",
"type": "checkbox",
"required": false,
"meta_class": null,
"ui_width": null,
"group_id": "evidence",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "attachment_summary",
"label": "Supporting records enclosed",
"type": "textarea",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "evidence",
"choice_group": null,
"choice_label": null,
"visibility": {
"fieldId": "include_attachment_summary",
"operator": "truthy"
},
"depends_on": [
"include_attachment_summary"
],
"validation": {
"maxLength": 2000
},
"compound": null
},
{
"id": "signature",
"label": "Borrower signature",
"type": "signature",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "review",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "facts_acknowledged",
"label": "I reviewed the generated packet and confirm its account details, values, and factual statements are accurate",
"type": "checkbox",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "review",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "product_limits_acknowledged",
"label": "I understand PostalForm prepares and mails the request but does not decide eligibility, order a valuation, pay a fee, provide legal advice, or guarantee PMI cancellation",
"type": "checkbox",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "review",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
}
],
"attachments": [
{
"id": "supporting_records",
"label": "Supporting PMI and mortgage records",
"required": false,
"instructions": "Upload relevant copies such as a current mortgage statement, PMI disclosure, Closing Disclosure, original or refinance appraisal, principal-curtailment confirmation, improvement summary, or prior servicer correspondence. Do not upload originals, payment instruments, or unrelated sensitive records.",
"allowed_types": [
"pdf",
"png",
"jpg",
"jpeg"
],
"max_files": 20,
"max_size_mb": 12
}
],
"attachments_max_total_size_mb": 12,
"machine_submission": {
"payload_property": "form",
"create_paths": {
"x402": "/api/machine/orders",
"mpp": "/api/machine/mpp/orders"
}
}
}
Preview, payment and retries
Validation does not mail the document. For a human checkout, use MCP postalform.create_form_order_draft and present the returned preview, total and checkout URL. Machine API clients must handle the returned MPP or x402 challenge only within owner-approved spending authority. Preserve request_id and the exact payload for retries; changing the content requires a new request ID. After an uncertain payment, retrieve order status before creating another order. Provider handoff is not USPS delivery.
Ready to get started?
Upload your PDF and we will handle printing and mailing.