Skip to contentPostalForm

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

Step 1

Fill out form

Complete the guided fields online.

Step 2

Preview PDF

Review the generated PDF before mailing.

Step 3

Mail

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.

Resources