---
title: "Bank Fraud Claim & Unauthorized Transfer Dispute Packet: API schema and JSON request"
description: Prepare an account-holder-authored Regulation E electronic-transfer error packet using deterministic customer facts, a confirmed bank error-resolution address, a typed or drawn signature, optional PDF/image evidence, and required Certified Mail. Require prior immediate bank notification, a personal consumer deposit or prepaid account, a supported electronic-transfer rail, and no active litigation or representation. Exclude credit cards, paper checks, wires, cryptocurrency, business accounts, customer-initiated scam payments, physical enclosures, and unsupported claims. Do not infer that a transfer was unauthorized, calculate or certify a deadline, promise provisional credit or recovery, or treat tracking as proof of legal sufficiency.
seotitle: Bank Fraud Claim & Unauthorized Transfer Dispute Packet API schema | PostalForm
seo-description: "Automate Bank Fraud Claim & Unauthorized Transfer Dispute Packet with PostalForm: field identifiers, recipient routing, attachments, a JSON request template and the guided browser workflow."
group: resources
indexable: true
llms: true
nav: false
schema: webpage
published: 2026-08-01
updated: 2026-08-01
path: /developers/forms/bank-fraud-unauthorized-transfer-dispute
---
# Bank Fraud Claim & Unauthorized Transfer Dispute Packet: API schema and JSON request

Prepare an account-holder-authored Regulation E electronic-transfer error packet using deterministic customer facts, a confirmed bank error-resolution address, a typed or drawn signature, optional PDF/image evidence, and required Certified Mail. Require prior immediate bank notification, a personal consumer deposit or prepaid account, a supported electronic-transfer rail, and no active litigation or representation. Exclude credit cards, paper checks, wires, cryptocurrency, business accounts, customer-initiated scam payments, physical enclosures, and unsupported claims. Do not infer that a transfer was unauthorized, calculate or certify a deadline, promise provisional credit or recovery, or treat tracking as proof of legal sufficiency.

## 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 | `bank-fraud-unauthorized-transfer-dispute` |
| 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
```json
{
  "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": "bank-fraud-unauthorized-transfer-dispute",
    "fields": {
      "relationship_to_account": "",
      "account_use": "",
      "transaction_scope": "",
      "already_reported_to_bank": "",
      "active_legal_matter": "",
      "physical_enclosure": "",
      "claim_stage": "",
      "error_type": "",
      "transfer_rail": "",
      "authorization_scope": "",
      "consumer_received_benefit": "",
      "letter_date": "",
      "sender_name": "",
      "sender_address": "",
      "account_last_4": "",
      "phone": "",
      "email": "",
      "recipient_name": "",
      "recipient_address": "",
      "dispute_address_source": "",
      "dispute_address_confirmed": false,
      "statement_date": "",
      "disputed_transactions": "",
      "total_disputed_amount": "",
      "why_error": "",
      "chronology": "",
      "bank_contact_date": "",
      "bank_contact_channel": "",
      "include_bank_claim_number": false,
      "bank_claim_number": "",
      "written_confirmation_due_date": "",
      "bank_response_date": "",
      "bank_response_details": "",
      "investigation_records_requested": "",
      "requested_correction": "",
      "include_attachment_summary": false,
      "attachment_summary": "",
      "signature": "",
      "facts_acknowledged": false,
      "immediate_notice_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_account` | Your relationship to the account | select | Yes | Account holder or joint account holder, Authorized representative, Estate, successor, or other relationship, Another relationship or unsure |
| `account_use` | How is the account used? | select | Yes | Personal consumer account, Business or commercial account, Another use or unsure |
| `transaction_scope` | What kind of transaction is this? | select | Yes | Electronic fund transfer from a deposit or prepaid account, Credit-card charge, Paper check, Wire transfer, Cryptocurrency transfer, Another transaction or unsure |
| `already_reported_to_bank` | Have you already reported the transfer to the bank? | select | Yes | Yes — I already reported it through an immediate channel, No — I have not reported it yet, Unsure |
| `active_legal_matter` | Is there an active lawsuit, arbitration, court deadline, or attorney representation? | select | Yes | No, Yes, Unsure |
| `physical_enclosure` | Will this packet include cash, a check, money order, debit card, original document, or another physical item? | select | Yes | No, Yes |
| `claim_stage` | Current claim stage | select | Yes | Initial written error notice after reporting the transfer, Written confirmation requested by the bank, Claim denied or provisional credit reversed — request investigation records |
| `error_type` | Electronic-transfer error type | select | Yes | Unauthorized electronic transfer, Incorrect transfer amount, Duplicate electronic transfer, Incorrect ATM cash amount, Unidentified electronic transfer or request for clarification |
| `transfer_rail` | Transfer rail | select | Yes | Debit card purchase, ATM withdrawal, ACH debit, Online bank transfer, Fraudster-initiated P2P transfer, Another electronic fund transfer |
| `authorization_scope` | Who initiated or authorized the transfer? | select | Yes | I did not initiate or authorize the disputed transfer, I authorized a transfer, but its amount was wrong or it was duplicated, I knowingly sent or approved the transfer, Unsure |
| `consumer_received_benefit` | Did you receive any benefit from the disputed transfer? | select | Yes | No, Yes, Unsure |
| `letter_date` | Letter date | date | Yes | See schema |
| `sender_name` | Account holder full name | text | Yes | See schema |
| `sender_address` | Account holder return mailing address | address | Yes | See schema |
| `account_last_4` | Account last 4 digits | text | Yes | See schema |
| `phone` | Phone number (optional) | text | No | See schema |
| `email` | Email address (optional) | text | No | See schema |
| `recipient_name` | Bank or credit union and error-resolution department | text | Yes | See schema |
| `recipient_address` | Bank error-resolution or investigation address | address | Yes | See schema |
| `dispute_address_source` | Where did you verify this address? | select | Yes | Bank written-confirmation or denial notice, Current account statement, Current account agreement or error-resolution notice, Current bank website or written instructions |
| `dispute_address_confirmed` | I confirmed this is the bank’s current address for electronic-transfer errors, written confirmations, or investigation correspondence. | checkbox | Yes | See schema |
| `statement_date` | Date the bank sent the first statement showing the disputed transfer | date | Yes | See schema |
| `disputed_transactions` | Disputed electronic transfers | textarea | Yes | See schema |
| `total_disputed_amount` | Total amount disputed | text | Yes | See schema |
| `why_error` | Why do you believe an error occurred? | textarea | Yes | See schema |
| `chronology` | Chronology of the transfer and your response | textarea | Yes | See schema |
| `bank_contact_date` | Date you first reported the transfer to the bank | date | Yes | See schema |
| `bank_contact_channel` | How did you first report it? | select | Yes | Phone, Bank mobile app, Bank website, In person, Another immediate bank channel |
| `include_bank_claim_number` | Include a bank claim or case reference | checkbox | No | See schema |
| `bank_claim_number` | Bank claim or case reference | text | Yes | See schema |
| `written_confirmation_due_date` | Date the bank gave for written confirmation | date | Yes | See schema |
| `bank_response_date` | Date of the denial or provisional-credit reversal notice | date | Yes | See schema |
| `bank_response_details` | Bank’s stated decision and reason | textarea | Yes | See schema |
| `investigation_records_requested` | Explanation and investigation records requested | textarea | Yes | See schema |
| `requested_correction` | Correction, explanation, or other action 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` | Account holder signature | signature | Yes | See schema |
| `facts_acknowledged` | I reviewed the generated packet and confirm its account identifier, transactions, dates, amounts, and factual statements are accurate. | checkbox | Yes | See schema |
| `immediate_notice_acknowledged` | I understand this mailing supplements my immediate bank report, and I am not relying on postal delivery to preserve a deadline. | checkbox | Yes | See schema |
| `product_limits_acknowledged` | I understand PostalForm prepares and mails the packet but does not provide legal advice, decide Regulation E coverage, certify a deadline, or guarantee provisional credit, reimbursement, or a bank 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
```json
{
  "schema_version": 1,
  "workflow_version": 1,
  "slug": "bank-fraud-unauthorized-transfer-dispute",
  "name": "Bank Fraud Claim & Unauthorized Transfer Dispute Packet",
  "description": "Create a signed written bank-dispute packet for an unauthorized or incorrect electronic transfer, attach supporting records, review the complete PDF, and send it by Certified Mail.",
  "agent_summary": "Prepare an account-holder-authored Regulation E electronic-transfer error packet using deterministic customer facts, a confirmed bank error-resolution address, a typed or drawn signature, optional PDF/image evidence, and required Certified Mail. Require prior immediate bank notification, a personal consumer deposit or prepaid account, a supported electronic-transfer rail, and no active litigation or representation. Exclude credit cards, paper checks, wires, cryptocurrency, business accounts, customer-initiated scam payments, physical enclosures, and unsupported claims. Do not infer that a transfer was unauthorized, calculate or certify a deadline, promise provisional credit or recovery, or treat tracking as proof of legal sufficiency.",
  "form_summary": "Use this workflow after promptly reporting a disputed electronic transfer to your bank. It supports an initial written error notice, a bank-requested written confirmation, or a denied-claim investigation-records request for a personal deposit or prepaid account.",
  "data_collected": [
    "Account-holder identity, return address, contact details, and account last four digits",
    "Bank or credit-union name, error-resolution department, confirmed dispute address, and optional claim number",
    "Claim stage, electronic-transfer rail, error type, disputed transactions, statement date, prior report, chronology, and requested action",
    "Bank written-confirmation date or denial and investigation-record details when applicable",
    "Optional statement pages, bank correspondence, transaction screenshots, and other supporting PDF/image copies",
    "Typed or drawn signature and factual, immediate-notice, address, and product-limit confirmations"
  ],
  "topics": [
    "bank accounts",
    "electronic fund transfers",
    "debit cards",
    "ATM withdrawals",
    "ACH",
    "Regulation E",
    "consumer finance",
    "certified mail"
  ],
  "category": "consumer_eft_error_resolution",
  "publish_state": "published",
  "aliases": [
    "regulation-e-bank-dispute",
    "unauthorized-transfer-dispute-letter",
    "bank-fraud-claim-packet"
  ],
  "llms": true,
  "indexable": true,
  "certified_mail": "required",
  "recipient": {
    "mode": "user"
  },
  "compliance_policy": {
    "id": "consumer_eft_error_resolution",
    "version": 1,
    "recheckStages": [
      "preview",
      "approval",
      "checkout",
      "payment",
      "fulfillment",
      "machine"
    ]
  },
  "checkout_flow": "forms_order",
  "published_at": "2026-08-01",
  "updated_at": "2026-08-01",
  "groups": [
    {
      "id": "scope",
      "label": "Supported consumer-account scope",
      "description": "Confirm the transfer and account fit this narrow workflow. Report suspicious transfers to the bank immediately; do not wait for a letter.",
      "depends_on": []
    },
    {
      "id": "claim",
      "label": "Claim stage and transfer type",
      "description": "Choose the current stage and describe why the electronic transfer is an error.",
      "depends_on": []
    },
    {
      "id": "consumer",
      "label": "Account holder",
      "description": "Enter only the identifying information the bank needs. Never enter a PIN, password, CVV, or full debit-card number.",
      "depends_on": []
    },
    {
      "id": "bank",
      "label": "Bank and error-resolution address",
      "description": "Use the current address the bank provides for electronic-transfer errors, written confirmations, or investigation correspondence.",
      "depends_on": []
    },
    {
      "id": "transactions",
      "label": "Transactions and chronology",
      "description": "List every disputed electronic transfer with its date, amount, statement descriptor, and factual reason.",
      "depends_on": []
    },
    {
      "id": "response",
      "label": "Bank response and requested action",
      "description": "Record the earlier report, bank response, requested correction, and investigation records when applicable.",
      "depends_on": []
    },
    {
      "id": "evidence",
      "label": "Supporting records",
      "description": "Upload relevant copies only. Keep originals and redact unrelated sensitive information.",
      "depends_on": []
    },
    {
      "id": "review",
      "label": "Sign and review",
      "description": "Sign the packet and confirm the facts, immediate bank report, destination, and product limits before preview.",
      "depends_on": []
    }
  ],
  "fields": [
    {
      "id": "relationship_to_account",
      "label": "Your relationship to the account",
      "type": "select",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "scope",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "options": [
        "Account holder or joint account holder",
        "Authorized representative",
        "Estate, successor, or other relationship",
        "Another relationship or unsure"
      ],
      "compound": null
    },
    {
      "id": "account_use",
      "label": "How is the account used?",
      "type": "select",
      "required": true,
      "meta_class": null,
      "ui_width": "half",
      "group_id": "scope",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "options": [
        "Personal consumer account",
        "Business or commercial account",
        "Another use or unsure"
      ],
      "compound": null
    },
    {
      "id": "transaction_scope",
      "label": "What kind of transaction is this?",
      "type": "select",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "scope",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "options": [
        "Electronic fund transfer from a deposit or prepaid account",
        "Credit-card charge",
        "Paper check",
        "Wire transfer",
        "Cryptocurrency transfer",
        "Another transaction or unsure"
      ],
      "compound": null
    },
    {
      "id": "already_reported_to_bank",
      "label": "Have you already reported the transfer to the bank?",
      "type": "select",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "scope",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "options": [
        "Yes — I already reported it through an immediate channel",
        "No — I have not reported it yet",
        "Unsure"
      ],
      "compound": null
    },
    {
      "id": "active_legal_matter",
      "label": "Is there an active lawsuit, arbitration, court deadline, or attorney representation?",
      "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": "physical_enclosure",
      "label": "Will this packet include cash, a check, money order, debit card, original document, or another physical item?",
      "type": "select",
      "required": true,
      "meta_class": null,
      "ui_width": "half",
      "group_id": "scope",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "options": [
        "No",
        "Yes"
      ],
      "compound": null
    },
    {
      "id": "claim_stage",
      "label": "Current claim stage",
      "type": "select",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "claim",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "options": [
        "Initial written error notice after reporting the transfer",
        "Written confirmation requested by the bank",
        "Claim denied or provisional credit reversed — request investigation records"
      ],
      "compound": null
    },
    {
      "id": "error_type",
      "label": "Electronic-transfer error type",
      "type": "select",
      "required": true,
      "meta_class": null,
      "ui_width": "half",
      "group_id": "claim",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "options": [
        "Unauthorized electronic transfer",
        "Incorrect transfer amount",
        "Duplicate electronic transfer",
        "Incorrect ATM cash amount",
        "Unidentified electronic transfer or request for clarification"
      ],
      "compound": null
    },
    {
      "id": "transfer_rail",
      "label": "Transfer rail",
      "type": "select",
      "required": true,
      "meta_class": null,
      "ui_width": "half",
      "group_id": "claim",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "options": [
        "Debit card purchase",
        "ATM withdrawal",
        "ACH debit",
        "Online bank transfer",
        "Fraudster-initiated P2P transfer",
        "Another electronic fund transfer"
      ],
      "compound": null
    },
    {
      "id": "authorization_scope",
      "label": "Who initiated or authorized the transfer?",
      "type": "select",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "claim",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "options": [
        "I did not initiate or authorize the disputed transfer",
        "I authorized a transfer, but its amount was wrong or it was duplicated",
        "I knowingly sent or approved the transfer",
        "Unsure"
      ],
      "compound": null
    },
    {
      "id": "consumer_received_benefit",
      "label": "Did you receive any benefit from the disputed transfer?",
      "type": "select",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "claim",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "options": [
        "No",
        "Yes",
        "Unsure"
      ],
      "compound": null
    },
    {
      "id": "letter_date",
      "label": "Letter date",
      "type": "date",
      "required": true,
      "meta_class": null,
      "ui_width": "half",
      "group_id": "consumer",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "compound": null
    },
    {
      "id": "sender_name",
      "label": "Account holder full name",
      "type": "text",
      "required": true,
      "meta_class": "name",
      "ui_width": "half",
      "group_id": "consumer",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "compound": null
    },
    {
      "id": "sender_address",
      "label": "Account holder return mailing address",
      "type": "address",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "consumer",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "compound": null
    },
    {
      "id": "account_last_4",
      "label": "Account last 4 digits",
      "type": "text",
      "required": true,
      "meta_class": "ssn_last4",
      "ui_width": "half",
      "group_id": "consumer",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "validation": {
        "minLength": 4,
        "maxLength": 4,
        "pattern": "^\\d{4}$"
      },
      "compound": null
    },
    {
      "id": "phone",
      "label": "Phone number (optional)",
      "type": "text",
      "required": false,
      "meta_class": "phone",
      "ui_width": "half",
      "group_id": "consumer",
      "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": "consumer",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "compound": null
    },
    {
      "id": "recipient_name",
      "label": "Bank or credit union and error-resolution department",
      "type": "text",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "bank",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "compound": null
    },
    {
      "id": "recipient_address",
      "label": "Bank error-resolution or investigation address",
      "type": "address",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "bank",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "compound": null
    },
    {
      "id": "dispute_address_source",
      "label": "Where did you verify this address?",
      "type": "select",
      "required": true,
      "meta_class": null,
      "ui_width": "half",
      "group_id": "bank",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "options": [
        "Bank written-confirmation or denial notice",
        "Current account statement",
        "Current account agreement or error-resolution notice",
        "Current bank website or written instructions"
      ],
      "compound": null
    },
    {
      "id": "dispute_address_confirmed",
      "label": "I confirmed this is the bank’s current address for electronic-transfer errors, written confirmations, or investigation correspondence.",
      "type": "checkbox",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "bank",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "compound": null
    },
    {
      "id": "statement_date",
      "label": "Date the bank sent the first statement showing the disputed transfer",
      "type": "date",
      "required": true,
      "meta_class": null,
      "ui_width": "half",
      "group_id": "transactions",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "compound": null
    },
    {
      "id": "disputed_transactions",
      "label": "Disputed electronic transfers",
      "type": "textarea",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "transactions",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "validation": {
        "minLength": 20,
        "maxLength": 6000
      },
      "compound": null
    },
    {
      "id": "total_disputed_amount",
      "label": "Total amount disputed",
      "type": "text",
      "required": true,
      "meta_class": "currency",
      "ui_width": "half",
      "group_id": "transactions",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "compound": null
    },
    {
      "id": "why_error",
      "label": "Why do you believe an error occurred?",
      "type": "textarea",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "transactions",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "validation": {
        "minLength": 20,
        "maxLength": 5000
      },
      "compound": null
    },
    {
      "id": "chronology",
      "label": "Chronology of the transfer and your response",
      "type": "textarea",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "transactions",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "validation": {
        "minLength": 20,
        "maxLength": 5000
      },
      "compound": null
    },
    {
      "id": "bank_contact_date",
      "label": "Date you first reported the transfer to the bank",
      "type": "date",
      "required": true,
      "meta_class": null,
      "ui_width": "half",
      "group_id": "response",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "compound": null
    },
    {
      "id": "bank_contact_channel",
      "label": "How did you first report it?",
      "type": "select",
      "required": true,
      "meta_class": null,
      "ui_width": "half",
      "group_id": "response",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "options": [
        "Phone",
        "Bank mobile app",
        "Bank website",
        "In person",
        "Another immediate bank channel"
      ],
      "compound": null
    },
    {
      "id": "include_bank_claim_number",
      "label": "Include a bank claim or case reference",
      "type": "checkbox",
      "required": false,
      "meta_class": null,
      "ui_width": null,
      "group_id": "response",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "compound": null
    },
    {
      "id": "bank_claim_number",
      "label": "Bank claim or case reference",
      "type": "text",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "response",
      "choice_group": null,
      "choice_label": null,
      "visibility": {
        "fieldId": "include_bank_claim_number",
        "operator": "truthy"
      },
      "depends_on": [
        "include_bank_claim_number"
      ],
      "validation": {
        "maxLength": 80
      },
      "compound": null
    },
    {
      "id": "written_confirmation_due_date",
      "label": "Date the bank gave for written confirmation",
      "type": "date",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "response",
      "choice_group": null,
      "choice_label": null,
      "visibility": {
        "fieldId": "claim_stage",
        "operator": "equals",
        "value": "Written confirmation requested by the bank"
      },
      "depends_on": [
        "claim_stage"
      ],
      "compound": null
    },
    {
      "id": "bank_response_date",
      "label": "Date of the denial or provisional-credit reversal notice",
      "type": "date",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "response",
      "choice_group": null,
      "choice_label": null,
      "visibility": {
        "fieldId": "claim_stage",
        "operator": "equals",
        "value": "Claim denied or provisional credit reversed — request investigation records"
      },
      "depends_on": [
        "claim_stage"
      ],
      "compound": null
    },
    {
      "id": "bank_response_details",
      "label": "Bank’s stated decision and reason",
      "type": "textarea",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "response",
      "choice_group": null,
      "choice_label": null,
      "visibility": {
        "fieldId": "claim_stage",
        "operator": "equals",
        "value": "Claim denied or provisional credit reversed — request investigation records"
      },
      "depends_on": [
        "claim_stage"
      ],
      "validation": {
        "minLength": 10,
        "maxLength": 4000
      },
      "compound": null
    },
    {
      "id": "investigation_records_requested",
      "label": "Explanation and investigation records requested",
      "type": "textarea",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "response",
      "choice_group": null,
      "choice_label": null,
      "visibility": {
        "fieldId": "claim_stage",
        "operator": "equals",
        "value": "Claim denied or provisional credit reversed — request investigation records"
      },
      "depends_on": [
        "claim_stage"
      ],
      "validation": {
        "minLength": 10,
        "maxLength": 4000
      },
      "compound": null
    },
    {
      "id": "requested_correction",
      "label": "Correction, explanation, or other action requested",
      "type": "textarea",
      "required": true,
      "meta_class": null,
      "ui_width": null,
      "group_id": "response",
      "choice_group": null,
      "choice_label": null,
      "depends_on": [],
      "validation": {
        "minLength": 10,
        "maxLength": 4000
      },
      "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": 2500
      },
      "compound": null
    },
    {
      "id": "signature",
      "label": "Account holder 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 identifier, transactions, 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": "immediate_notice_acknowledged",
      "label": "I understand this mailing supplements my immediate bank report, and I am not relying on postal delivery to preserve a deadline.",
      "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 E coverage, certify a deadline, or guarantee provisional credit, reimbursement, or a bank 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 bank-dispute records",
      "required": false,
      "instructions": "Upload relevant copies such as the statement page showing the transfer, bank claim confirmation, denial or provisional-credit reversal notice, transaction screenshots, correspondence, or an existing identity-theft or police report. Keep originals. Redact unrelated information and never upload a PIN, password, CVV, or full debit-card number.",
      "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.


## Resources
- [All machine form schemas](/developers/forms)
- [Guided form](/forms/bank-fraud-unauthorized-transfer-dispute)
- [Current JSON schema](/api/machine/forms/bank-fraud-unauthorized-transfer-dispute/schema)
- [Machine order guide](/agents)
- [Pricing](/pricing)


## Ready to send it?
[Open guided form](/forms/bank-fraud-unauthorized-transfer-dispute)
