Content
Mortgage Payment & Escrow Error Packet API reference
Prepare a borrower-authored mortgage servicing Notice of Error under the narrow CFPB consumer-guidance lane, with an optional Request for Information and supporting PDF/image copies. Require a closed-end residential mortgage, post-closing servicing issue, borrower or co-borrower, current servicer-designated Notice of Error or information-request address, no enclosed payment, and no active foreclosure sale, bankruptcy, litigation, origination, underwriting, or loss-mitigation matter. Do not determine Regulation X coverage, calculate legal deadlines, promise a response, or treat tracking as proof of legal sufficiency.
Published Jul 25, 2026
Workflow slug: mortgage-servicing-error-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 | mortgage-servicing-error-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": "mortgage-servicing-error-packet",
"fields": {
"relationship_to_loan": "",
"loan_type": "",
"request_scope": "",
"foreclosure_sale_scheduled": "",
"active_bankruptcy_or_litigation": "",
"payment_enclosed": "",
"letter_date": "",
"sender_name": "",
"include_co_borrowers": false,
"co_borrower_names": "",
"sender_address": "",
"property_address": "",
"mortgage_account_number": "",
"phone": "",
"email": "",
"recipient_name": "",
"recipient_address": "",
"designated_address_source": "",
"designated_address_confirmed": false,
"primary_issue": "",
"error_description": "",
"relevant_dates": "",
"include_amount_in_dispute": false,
"amount_in_dispute": "",
"include_prior_contact": false,
"prior_contact_details": "",
"requested_correction": "",
"include_information_request": false,
"information_requested": "",
"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 | Closed-end residential mortgage, Home equity line of credit (HELOC), Reverse mortgage, Another loan type or unsure |
request_scope |
What part of the mortgage is the problem about? | select | Yes | Mortgage servicing after closing, Origination or underwriting, Loss mitigation or foreclosure, Another issue or 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_enclosed |
Will this packet include a mortgage payment, coupon, check, money order, or original document? | select | Yes | No, Yes |
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 |
phone |
Phone number (optional) | text | No | See schema |
email |
Email address (optional) | text | No | See schema |
recipient_name |
Mortgage servicer and request department | text | Yes | See schema |
recipient_address |
Designated Notice of Error or information-request address | address | Yes | See schema |
designated_address_source |
Where did you verify this special address? | select | Yes | Current mortgage statement, Current servicer website, Written servicer instructions, Another current servicer source |
designated_address_confirmed |
I confirmed this is the servicer’s current address for Notices of Error or Requests for Information. | checkbox | Yes | See schema |
primary_issue |
Primary servicing issue | select | Yes | Payment rejected or not accepted, Payment misapplied or credited on the wrong date, Escrow tax or insurance payment not made, Incorrect escrow analysis or escrow balance, Unsupported or incorrect fee, Force-placed insurance error, Incorrect periodic statement or account balance, Incorrect payoff balance, Servicing transfer error, Another specific mortgage-servicing error |
error_description |
Describe the specific servicing error | textarea | Yes | See schema |
relevant_dates |
Relevant dates | textarea | Yes | See schema |
include_amount_in_dispute |
Include an amount affected | checkbox | No | See schema |
amount_in_dispute |
Amount affected | text | Yes | See schema |
include_prior_contact |
Include prior contact with the servicer | checkbox | No | See schema |
prior_contact_details |
Prior servicer contact | textarea | Yes | See schema |
requested_correction |
Correction or action requested | textarea | Yes | See schema |
include_information_request |
Also include a Request for Information? | checkbox | No | See schema |
information_requested |
Specific servicing information or records requested | textarea | 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, dates, amounts, and factual statements are accurate. | checkbox | Yes | See schema |
product_limits_acknowledged |
I understand PostalForm prepares and mails the packet but does not provide legal advice, decide Regulation X coverage, stop foreclosure, change payment duties, or guarantee the servicer’s response. | 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": "mortgage-servicing-error-packet",
"name": "Mortgage Payment & Escrow Error Packet",
"description": "Create a signed mortgage servicing Notice of Error, optionally add a Request for Information and supporting records, review the finished PDF, and mail it to your servicer by Certified Mail.",
"agent_summary": "Prepare a borrower-authored mortgage servicing Notice of Error under the narrow CFPB consumer-guidance lane, with an optional Request for Information and supporting PDF/image copies. Require a closed-end residential mortgage, post-closing servicing issue, borrower or co-borrower, current servicer-designated Notice of Error or information-request address, no enclosed payment, and no active foreclosure sale, bankruptcy, litigation, origination, underwriting, or loss-mitigation matter. Do not determine Regulation X coverage, calculate legal deadlines, promise a response, or treat tracking as proof of legal sufficiency.",
"form_summary": "Use this workflow for a payment, escrow, fee, payoff, insurance, statement, or servicing-transfer problem on your own closed-end residential mortgage. PostalForm generates the signed notice, appends your supporting copies, and mails the packet to the servicer address you confirm.",
"data_collected": [
"Borrower identity, return address, property address, contact details, and mortgage account number",
"Mortgage servicer, designated Notice of Error or Request for Information department, and confirmed mailing address",
"Servicing issue category, factual chronology, disputed amount when known, requested correction, and optional information request",
"Optional copies of statements, payment records, escrow records, insurance records, fees, payoff records, and servicer correspondence",
"Typed or drawn borrower signature and scope confirmations"
],
"topics": [
"mortgages",
"mortgage servicing",
"escrow",
"payments",
"RESPA",
"consumer finance",
"certified mail"
],
"category": "mortgage_servicing_error_packet",
"publish_state": "published",
"aliases": [
"mortgage-notice-of-error",
"mortgage-request-for-information",
"respa-notice-of-error"
],
"llms": true,
"indexable": true,
"certified_mail": "required",
"recipient": {
"mode": "user"
},
"compliance_policy": {
"id": "mortgage_servicing_error_packet",
"version": 1,
"recheckStages": [
"preview",
"approval",
"checkout",
"payment",
"fulfillment",
"machine"
]
},
"checkout_flow": "forms_order",
"published_at": "2026-07-25",
"updated_at": "2026-07-25",
"groups": [
{
"id": "scope",
"label": "Supported mortgage-servicing scope",
"description": "Confirm this is your own closed-end mortgage and a post-closing servicing issue. Urgent or represented legal matters need a different path.",
"depends_on": []
},
{
"id": "borrower",
"label": "Borrower and loan",
"description": "Enter the information the servicer needs to identify you and the mortgage account.",
"depends_on": []
},
{
"id": "servicer",
"label": "Mortgage servicer and special address",
"description": "Use the current department and address designated for Notices of Error or Requests for Information—not a payment address unless the servicer says they are the same.",
"depends_on": []
},
{
"id": "error",
"label": "Servicing error",
"description": "State the specific transaction, date, amount, or account entry you believe is wrong and the correction you want.",
"depends_on": []
},
{
"id": "information",
"label": "Optional information request",
"description": "Ask for specific servicing records when they would help explain or resolve the issue.",
"depends_on": []
},
{
"id": "evidence",
"label": "Supporting records",
"description": "Summarize the copies you will attach. Keep originals and avoid unrelated sensitive information.",
"depends_on": []
},
{
"id": "review",
"label": "Sign and review",
"description": "Sign the notice 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": [
"Closed-end residential mortgage",
"Home equity line of credit (HELOC)",
"Reverse mortgage",
"Another loan type or unsure"
],
"compound": null
},
{
"id": "request_scope",
"label": "What part of the mortgage is the problem about?",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "scope",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Mortgage servicing after closing",
"Origination or underwriting",
"Loss mitigation or foreclosure",
"Another issue or 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_enclosed",
"label": "Will this packet include a mortgage payment, 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": "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": "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 request 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": "Designated Notice of Error or information-request 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 special 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",
"Current servicer website",
"Written servicer instructions",
"Another current servicer source"
],
"compound": null
},
{
"id": "designated_address_confirmed",
"label": "I confirmed this is the servicer’s current address for Notices of Error or Requests for Information.",
"type": "checkbox",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "servicer",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "primary_issue",
"label": "Primary servicing issue",
"type": "select",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "error",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"options": [
"Payment rejected or not accepted",
"Payment misapplied or credited on the wrong date",
"Escrow tax or insurance payment not made",
"Incorrect escrow analysis or escrow balance",
"Unsupported or incorrect fee",
"Force-placed insurance error",
"Incorrect periodic statement or account balance",
"Incorrect payoff balance",
"Servicing transfer error",
"Another specific mortgage-servicing error"
],
"compound": null
},
{
"id": "error_description",
"label": "Describe the specific servicing error",
"type": "textarea",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "error",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"validation": {
"minLength": 20,
"maxLength": 5000
},
"compound": null
},
{
"id": "relevant_dates",
"label": "Relevant dates",
"type": "textarea",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "error",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"validation": {
"minLength": 6,
"maxLength": 2000
},
"compound": null
},
{
"id": "include_amount_in_dispute",
"label": "Include an amount affected",
"type": "checkbox",
"required": false,
"meta_class": null,
"ui_width": null,
"group_id": "error",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "amount_in_dispute",
"label": "Amount affected",
"type": "text",
"required": true,
"meta_class": "currency",
"ui_width": "half",
"group_id": "error",
"choice_group": null,
"choice_label": null,
"visibility": {
"fieldId": "include_amount_in_dispute",
"operator": "truthy"
},
"depends_on": [
"include_amount_in_dispute"
],
"compound": null
},
{
"id": "include_prior_contact",
"label": "Include prior contact with the servicer",
"type": "checkbox",
"required": false,
"meta_class": null,
"ui_width": null,
"group_id": "error",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "prior_contact_details",
"label": "Prior servicer contact",
"type": "textarea",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "error",
"choice_group": null,
"choice_label": null,
"visibility": {
"fieldId": "include_prior_contact",
"operator": "truthy"
},
"depends_on": [
"include_prior_contact"
],
"validation": {
"maxLength": 2500
},
"compound": null
},
{
"id": "requested_correction",
"label": "Correction or action requested",
"type": "textarea",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "error",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"validation": {
"minLength": 10,
"maxLength": 3000
},
"compound": null
},
{
"id": "include_information_request",
"label": "Also include a Request for Information?",
"type": "checkbox",
"required": false,
"meta_class": null,
"ui_width": "half",
"group_id": "information",
"choice_group": null,
"choice_label": null,
"depends_on": [],
"compound": null
},
{
"id": "information_requested",
"label": "Specific servicing information or records requested",
"type": "textarea",
"required": true,
"meta_class": null,
"ui_width": null,
"group_id": "information",
"choice_group": null,
"choice_label": null,
"visibility": {
"fieldId": "include_information_request",
"operator": "truthy"
},
"depends_on": [
"include_information_request"
],
"validation": {
"minLength": 10,
"maxLength": 3000
},
"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, dates, amounts, 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 packet but does not provide legal advice, decide Regulation X coverage, stop foreclosure, change payment duties, or guarantee the servicer’s response.",
"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 mortgage-servicing records",
"required": false,
"instructions": "Upload relevant copies such as mortgage statements, payment confirmations, bank records, escrow analyses, tax or insurance records, fee notices, payoff statements, transfer notices, or prior servicer correspondence. Do not upload originals 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.